gpt4 book ai didi

javascript - 当我使用 === 而不是 !== 时,为什么更改 "if"条件会给出不同的答案?

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

该函数检查数组元素是否相同,如果相同则返回 true。

当我使用下面的函数时,它给出了正确的结果。

var arr = [1, 2, 3, 4];

function isUniform(arr) {
var store = arr[0];

for (var i = 0; i < arr.length; i++) {
if (arr[i] !== store) {
return false;
}
}
return true;
}
console.log(isUniform(arr));

但是当我使用这样的函数时,即; 更改if条件,返回 false

var arr = [1, 2, 3, 4];

function isUniform(arr) {
var store = arr[0];

for (var i = 0; i < arr.length; i++) {
if (arr[i] === store) {
return true;
}
}
return false;

}

console.log(isUniform(arr));

最佳答案

问题是,如果接下来的值之一与 arr[0] 相同,您的代码片段将返回 true,请参阅以下示例:

var arr = [1, 1, 3, 1, 1];

function isUniform(arr) {
var store = arr[0];

for (var i = 0; i < arr.length; i++) {
if (arr[i] === store) {
return true;
}
}
return false;

}

console.log(isUniform(arr));

这里,一旦 for 循环开始,函数就会返回 true,因为 arr[0] is store

你应该使用的是 Array#every()它检查所有元素是否符合特定条件:

var arr = [1, 1, 3, 1, 1];
var arr2 = [1,1,1,1,1,1,1];

function isUniform(arr) {
return arr.every(e => e === arr[0]);
}

console.log(isUniform(arr));

console.log(isUniform(arr2));

关于javascript - 当我使用 === 而不是 !== 时,为什么更改 "if"条件会给出不同的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061626/

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