如果在javascript数组

时间:2018-04-01 11:27:26

标签: javascript arrays

在检查空数组或值为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)
}

问题是,结果我总是假的

2 个答案:

答案 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)
}