我现在如何检查该值是否定义为未定义,或者是否确实未定义? 例如。
var a = [];
a[0] = undefined;
// a defined value that's undefined
typeof a[0] === "undefined";
// and a value that hasn't been defined at all
typeof a[1] === "undefined";
有没有办法将这两者分开?它可能会使用for-in循环来完成数组,但是有更轻松的方法吗?
答案 0 :(得分:3)
您可以检查索引是否在给定数组中:
0 in a // => true
1 in a // => false
答案 1 :(得分:2)
您可以使用in
运算符检查数组中是否存在给定索引,而不管其实际值是什么
var t = [];
t[0] = undefined;
t[5] = "bar";
console.log( 0 in t ); // true
console.log( 5 in t ); // true
console.log( 1 in t ); // false
console.log( 6 in t ); // false
if( 0 in t && t[0] === undefined ) {
// the value is defined as "undefined"
}
if( !(1 in t) ) {
// the value is not defined at all
}