如何在 JavaScript 数组中检查键是否存在?

11

如何检查JavaScript数组中是否存在特定的键?

实际上,我正在检查键是否未定义来确定键是否存在。但是如果该键存在但值确实为undefined该怎么办?

var obj = { key: undefined }; obj["key"] != undefined // false,但是该键确实存在!


5个回答

19

使用in操作符。

0 in [10, 42] // true
2 in [10, 42] // false

'a' in { a: 'foo' } // true
'b' in { a: 'foo' } // false

8

使用in运算符

if ( "my property name" in myObject )

3
let $arr = [1, 0, false];

console.log($arr.indexOf(0));     // 1
console.log($arr.indexOf(false)); // 2
console.log($arr.indexOf(15));    // -1

if ($arr.indexOf(18) !== -1) //Todo

1
好的回答,下次请添加一些文字来解释。 - Eldshe

1

Array filter() function

You can use the Javascript array filter funtion. Like that:

const arr = ["ab","cd"]
const needle = "cd"
console.log( arr.filter(i => i == needle).length > 0 ? "exists" : "not exists" )


-1

使用 hasOwnProperty(key)

for (let i = 0; i < array.length; i++) {
        let a = obj[i].hasOwnProperty(`${key}`);
        if(a){
            console.log(obj[i])
       }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接