分类' undefined'类型

时间:2017-06-21 08:00:30

标签: javascript arrays

如何在这些情况下对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

1 个答案:

答案 0 :(得分:0)

您无法区分值本身。基本上,您希望查看对象/数组是否具有键,而不管其值如何。为此,您可以使用hasOwnProperty

[].hasOwnProperty(0) --> false
[undefined].hasOwnProperty(0) --> true