首页 > 解决方案 > 即使我定义了 TypeError 变量,也没有定义它

问题描述

所以我用 Javascript 制作了一个游戏,它涉及从“Deck”中抽取卡片我使用了这段代码,但得到了错误“TypeError:card_name is not defined”

const draw_card = () => {
  let drawn_times = 0;
  let drawn_card = Math.round(Math.random() * 52);
  let card_name = cards[drawn_card];

  while (true) {
    for (i in cards_drawn) {
        if (i == card_name[0]) {
            drawn_times ++;
        }
    }

    if (!(drawn_times > decks)) {
        cards_drawn.push(card_name[0])
        break;
    }

    drawn_card = Math.round(Math.random() * 52);
    card_name = cards[drawn_card];
  }

  return card_name;
}

draw_card();

我似乎无法找到为什么这种情况不断发生,任何人都可以发现我可能错过的任何事情

请注意,cards_drawn 变量是一个空数组,cards 变量是一个包含 52 个卡片名称的数组,其中的值类似于 ["2 of clubs", 2]

标签: javascript

解决方案


你在哪里声明变量“卡片”?问题出在第 4 行,let card_name = cards[drawn_card];您尝试从似乎不存在的变量“cards”中获取特定元素。


推荐阅读