如何在这些情况下对undefined
进行分类?
var arr = [];
var a = arr[0];
console.log(arr.length); // 0
console.log(a === undefined); // true
console.log(typeof a === 'undefined'); // true
和
var arr = [undefined];
var a = arr[0];
console.log(arr.length); // 1
console.log(a === undefined); // true
console.log(typeof a === 'undefined'); // true
我想知道arr
数组中的特定索引是否包含元素。
在第一种情况下:arr[0]
不包含任何元素(不是具有undefined
值的元素)。
在第二种情况下:arr[0]
包含1个元素(undefined
值)。
不使用length
属性,有没有办法对它们进行分类?因为有些情况我并不完全知道length
。
更新
我想谈谈undefined
,因为有时arr
可能包含这样的元素:
var e = [].find(x => x === 0); // undefined
arr.push(e); // arr contains 1 element now
答案 0 :(得分:0)
您无法区分值本身。基本上,您希望查看对象/数组是否具有键,而不管其值如何。为此,您可以使用hasOwnProperty
:
[].hasOwnProperty(0) --> false
[undefined].hasOwnProperty(0) --> true