gpt4 book ai didi

javascript - array.includes 问题

转载 作者:行者123 更新时间:2023-11-28 04:00:51 25 4
gpt4 key购买 nike

所以我的问题似乎是 getNumString() 方法运行不正确,因为 while 循环无限期地进行,但我似乎不明白为什么。甲板上应该充满了您在其中看到的示例字符串,但它从不调用其中任何一个,而是在 while 循环不会无限期地进行时调用第一个(当然对代码进行一些更改)。任何见解将不胜感激。

let deck = [
//"cardR01C01", "cardR01C01",
];

function getNumString(num) {
if (num < 10) {
return "0" + num.toString();
}
else {
return num.toString();
}
}

function getRandomNum(upperLimit) {
return Math.floor((Math.random() * upperLimit) + 1);
}

function fillDeck() {
let cardString = ".cardR" + getNumString(getRandomNum(4)) + "C" +
getNumString(getNumString(13));
while (deck.includes(cardString)) {
cardString = ".cardR" + getNumString(getRandomNum(4)) + "C" +
getNumString(getNumString(13));
}
deck.push(cardString);
deck.push(cardString);
}

for (let i = 0; i < (numCards / 2); i++) {
fillDeck();
}

*经过更多测试后,我发现真正的问题在于 .includes 函数。谁能告诉我为什么?

最佳答案

您的意思是在代码中使用 getRandomNum(13) 而不是 getNumString(13) 吗?您的代码只能生成 4 个唯一的字符串:。 .cardR01C13、.cardR02C13、.cardR03C13、.cardR03C13。如果 numCards 足够大,那么在生成几张卡片后,所有这些情况都将被覆盖,但只要该卡片已经在牌组中(即,它),您的 while 循环就会继续尝试生成卡片不断尝试生成独特的卡片)。然而,它无法生成更多独特的卡牌,因此循环将永远持续下去。

关于javascript - array.includes 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47125777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com