检查数组在Javascript中是否具有确切的键值对象

时间:2014-02-03 21:36:14

标签: javascript arrays

我正在做一个简单的检查,看看这个数组是否有一个确切的键值对。

例如

testArray = [
   { "key1": "value1" },
   { "key2": "value2" },
   { "key1": "value2" )
]

如何检查数组是否包含确切的对象{“key1”:“value2”}?

感谢您的帮助。

3 个答案:

答案 0 :(得分:16)

在现代浏览器中,

testArray.some(function(o){return o["key1"] === "value2";})
如果找到对,则

将为true,否则为false

这假设每个对象只包含一个键/值对,并且该值永远不会是undefined

答案 1 :(得分:0)

您首先要检查对象中是否存在该键(使用.hasOwnProperty() AND ,如果该键值引用的“值”值与您的值相匹配寻找。代码很简单:

var testKey = "some_key";
var testVal = "some_val";

for (i=0; i < testArray.length; i++) {
    if ((testArray[i].hasOwnProperty(testKey)) && (testArray[i][testKey] === testVal)) {
        // positive test logic
        break;   // so that it doesn't keep looping, after finding a match
    } 
    else {
        // negative test logic
    }
}

答案 2 :(得分:0)

testArray.find(key => key.key1 === 'value1')