繁体   English   中英

无法使用数组中的值查找键值

[英]can't look up key value using value from array

我正在编写一个游戏,其中包含 100 个生成的图块,如下所示:

 const allLetters = { 'A': { 'points': 1, 'tiles': 9 }, 'B': { 'points': 3, 'tiles': 2 }, 'C': { 'points': 3, 'tiles': 2 }, 'D': { 'points': 2, 'tiles': 4 }, 'E': { 'points': 1, 'tiles': 12 }, 'F': { 'points': 4, 'tiles': 2 }, 'G': { 'points': 2, 'tiles': 3 }, 'H': { 'points': 4, 'tiles': 2 }, 'I': { 'points': 1, 'tiles': 9 }, 'J': { 'points': 8, 'tiles': 1 }, 'K': { 'points': 5, 'tiles': 1 }, 'L': { 'points': 1, 'tiles': 4 }, 'M': { 'points': 3, 'tiles': 2 }, 'N': { 'points': 1, 'tiles': 6 }, 'O': { 'points': 1, 'tiles': 8 }, 'P': { 'points': 3, 'tiles': 2 }, 'Q': { 'points': 10, 'tiles': 1 }, 'R': { 'points': 1, 'tiles': 6 }, 'S': { 'points': 1, 'tiles': 4 }, 'T': { 'points': 1, 'tiles': 6 }, 'U': { 'points': 1, 'tiles': 4 }, 'V': { 'points': 4, 'tiles': 2 }, 'W': { 'points': 4, 'tiles': 2 }, 'X': { 'points': 8, 'tiles': 1 }, 'Y': { 'points': 4, 'tiles': 2 }, 'Z': { 'points': 10, 'tiles': 1 }, ' ': { 'tiles': 2 } } let tiles = []; Object.keys(allLetters).forEach(letter => { for (let i = 0; i < allLetters[letter]['tiles']; i += 1){ tiles.push(letter); } }); console.log(tiles);

我想将每个图块与一个点值相关联,所以这是我尝试过的:

var playersTiles = [];
for (let i = 0; i < 7; i++){
  let tileIndex = Math.round(Math.random() * (tiles.length - 1));
  playersTiles.push(tiles[tileIndex]);
  let letter = playersTiles[i];
  let points = allLetters[letter]['points'];
  playersTiles.push(tiles[tileIndex][points]);
  tiles.splice(tileIndex, 1);
}

我的代码在此行返回错误:

let points = allLetters[letter]['points'];

它说:

allLetters[letter] is undefined

我究竟做错了什么?

那是因为tiles是此处代码中显示的一维数组

let tiles = [];

Object.keys(allLetters).forEach(letter => {
    for (let i = 0; i < allLetters[letter]['tiles']; i += 1){
        tiles.push(letter); // Pushing only the letter which makes it one-dimensional array
    }
});

在这部分playersTiles.push(tiles[tileIndex][points]); 你假设tiles是一个二维数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM