我正在做一个简单的检查,看看这个数组是否有一个确切的键值对。
例如
testArray = [
{ "key1": "value1" },
{ "key2": "value2" },
{ "key1": "value2" )
]
如何检查数组是否包含确切的对象{“key1”:“value2”}?
感谢您的帮助。
答案 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')