在检查空数组或值为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)
}
问题是,结果我总是假的
答案 0 :(得分:2)
由于在使用严格相等(0
)时数组永远不等于===
,因此第一个条件array === 0
失败。由于数组不为空,因此检查array1.length <= 0
(顺便说一下 - 数组的长度永远不会小于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
答案 1 :(得分:-2)
为什么===
应为==
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)
}