在检查空数组或值为0的数组时,我在javascript中的if语句有点麻烦
array1=[0]
if(array1 === 0 || array1.length <= 0){
console.log(true)
} else {
console.log(false)
}
if(array1 === 0){
console.log(true)
} else {
console.log(false)
}
问题是,我总是假的
为什么===
它应该是==
var array1 = [0]
if (array1 == 0 || array1.length <= 0) {
console.log(true)
} else {
console.log(false)
}
if (array1 === 0) {
console.log(true)
} else {
console.log(false)
}
因为当你使用严格相等(0
)时,数组永远不会等于===
,所以第一个条件array === 0
失败了。由于数组不为空,因此检查array1.length <= 0
(btw - 数组的长度永远不会小于0)也会失败,结果是false
。
检查第一个索引(0
)中的数组是否等于0:
const arr1 = [0];
const arr2 = [];
const arr3 = [5];
const isZeroArray = (arr) => arr.length === 0 || arr[0] === 0;
console.log(isZeroArray(arr1)); // true
console.log(isZeroArray(arr2)); // true
console.log(isZeroArray(arr3)); // false
另外,如果你想检查数组中的所有项是否都是0
,你可以使用Array.every()
:
const arr1 = [0, 0, 0, 0];
const arr2 = [];
const arr3 = [5];
const isZeroArray = (arr) => arr.length === 0 || arr.every(e => e === 0);
console.log(isZeroArray(arr1)); // true
console.log(isZeroArray(arr2)); // true
console.log(isZeroArray(arr3)); // false