在javascript数组中遇到问题

问题描述 投票:-6回答:2

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

问题是,我总是假的

javascript arrays
2个回答
-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)
}

2
投票

因为当你使用严格相等(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
© www.soinside.com 2019 - 2024. All rights reserved.