gpt4 book ai didi

javascript - 同一变量的返回值和日志不匹配

转载 作者:行者123 更新时间:2023-12-01 02:51:30 25 4
gpt4 key购买 nike

我有一个名为 bar 的数组,其中包含进度条的事件 ID 号。我想遍历这个数组来查找第一个与其索引不匹配的值(用于查找最低的可用 ID)。我的(显然不正确的)解决方案如下:

var bars = [0,1];
function getNewBarID(counter) {
var i = counter || 0; //sets i to counter value if it exists, or to 0 if it doesn't
if (bars[i] == i) {
++i;
getNewBarID(i);
} else {
console.log(i);
return i;
}
}
getNewBarID();

当我运行这个(在节点控制台和 chrome js 控制台中)时,它会将 2 记录到控制台并返回 undefined,而它应该返回 2 .

什么!?

编辑:当函数使用空数组运行时,它会返回并记录 0 (更多什么!?)

最佳答案

可能:

return getNewBarID(i);

但说实话,它应该是:

const newBar = bars.find((el,i) => el !== i) || bars.length; //newBar contains the result...

或者使用一个好的旧的 for 循环更长一点:

function getNewBarID(){
let i = 0;
while(bars[i] === i) i++;
return i;
}

Try it

关于javascript - 同一变量的返回值和日志不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46937935/

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