如何检查数组索引是否为空/空?

时间:2020-07-10 15:08:31

标签: javascript arrays

我试图检查数组中的null值,但是没有用。我发现我没有任何null值,但有空值。 enter image description here 如何检查值是否为空?

if(array[i] === null) {
...
}

2 个答案:

答案 0 :(得分:3)

如果索引不是数组的键,则它是一个空元素。检查null或undefined无效,因为它们可能是值。

if(!array.hasOwnProperty(i)) //element is empty

let array = [1,2,3,undefined,null,0,,,,];//3 empty slots
for(let i = 0; i < array.length; i++){
  if(!array.hasOwnProperty(i)){
    console.log("empty");
  } else {
    console.log(array[i]);
  }
}

答案 1 :(得分:1)

empty x 5表示您的数组中有5个未定义的值。在JavaScript undefinednull中,有两个不同的概念docs

要检查空值,只需使用if(arr[i]===null){}

请注意,0,false,null,undefined,""均被视为虚假值。因此,如果您仅使用

if(arr[i]){//do something}
else {//do another thing}`

对于上述值,将永远不会执行if块。 例子

let falsyValues=[0,false,null,undefined,""]

falsyValues.map((val,i)=>{
if(falsyValues[i])
console.log("executing if block with ",val)
else
console.log("else bock executed with ",val)
})

要仅检查null值,必须专门查看该值。

let arr=[1,undefined,3,undefined,null,6,null,8,null]

arr.map((val,i)=>{
if(arr[i]===null)
console.log("null value found at index ",i)
else if(arr[i]===undefined)
console.log("undefined value found at index ",i)
})