答案 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 undefined
和null
中,有两个不同的概念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)
})