gpt4 book ai didi

只要第一个元素相等,Javascript 数组就返回相等

转载 作者:行者123 更新时间:2023-12-02 15:30:05 24 4
gpt4 key购买 nike

我正在尝试比较两个 javascript 整数数组,最多可达一个数组的长度。这意味着,我有一个使用用户输入构建的数组和用户试图达到的目标数组,我只想确保用户输入的序列正确无误。

例如

如果目标数组是 [0, 3, 5, 4] 并且用户到目前为止已经输入了 [0, 3, 5],我希望我的方法返回 true。我这样做的尝试是:

function compareArrays(){
for(var i=0; i<playerPattern.length; i++){
if (playerPattern[i] !== pattern[i]){
return false;
} else {
return true;
}
}
}

每次事件处理程序获取用户输入时都会调用此函数:

    if(isInButton(greenButton, mouseX, mouseY)){
playerPattern[playerPattern.length] = 0;
console.log(pattern);
console.log(playerPattern);
console.log(compareArrays());
if(compareArrays() === false){
youLose();
} else if(compareArrays() === true && playerPattern.length === pattern.length){
clickTile(0);
score++;
playerPattern.length = 0; //reset the playerPattern array because they completed the turn
setTimeout(increasePattern, 1000);
} else {
clickTile(0);
}
} else if(isInButton(redButton, mouseX, mouseY)){
...
...

我不明白为什么只要用户数组中的第一个元素为 true,此方法就会返回 true。

例如该方法在目标为 [0, 3, 4, 5] 和用户为 [0, 2, 1, 0] 的情况下返回 true

最佳答案

鉴于 if 的两个分支中都有 return 语句,您的函数在比较第一个元素后始终会立即停止。

return true 语句应该在循环之外:

function compareArrays(){
for(var i=0; i<playerPattern.length; i++){
if (playerPattern[i] !== pattern[i]){
return false;
}
}
return true;
}

关于只要第一个元素相等,Javascript 数组就返回相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387650/

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