gpt4 book ai didi

javascript - 使用 for Loop() 在数组中查找唯一数字

转载 作者:行者123 更新时间:2023-11-30 20:20:59 24 4
gpt4 key购买 nike

我在尝试 Javascript 练习时遇到了问题。我已经构建了一个函数来查找数组是否由相同的数字组成。如果有任何唯一编号,则返回 false。

这是我想出的,但我不明白为什么它不起作用。

function isUniform(arr){
for (var i = 0; i < arr.length; i++) {
if (arr[i-1] !== arr[i]); {
return false;
}
}
return true;
}

为什么这不起作用?这里有什么问题?我是一个完整的菜鸟!

感谢大师!

最佳答案

第一次迭代总是返回false(除非数组的第一个元素未定义),因为当i从0开始时,

if (arr[i-1] !== arr[i])

将永远解决

if (false)

因为 arr[i-1] 解析为 arr[-1],这几乎肯定是 undefined。数组是零索引的,而不是 -1 索引的。如果您想使用 for 循环,请从 i = 1 开始:

function isUniform(arr){
for (var i = 1; i < arr.length; i++) {
if (arr[i-1] !== arr[i]) {
return false;
}
}
return true;
}
console.log(isUniform([1, 1, 1]));
console.log(isUniform([1, 1, 2]));

或者您可以避免循环并使用 every 代替:

function isUniform(arr){
const [first] = arr;
return arr.every(item => item === first);
}
console.log(isUniform([1, 1, 1]));
console.log(isUniform([1, 1, 2]));

关于javascript - 使用 for Loop() 在数组中查找唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51452941/

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