检查,如果在阵列字典对象包含在javascript

问题描述:

一定值I有一个数组,像这样:检查,如果在阵列字典对象包含在javascript

const myArray = [{key1: "value1", key2: "value2"}, {key1: "value4", key2: "value8"}, 
    {key1: "value1", key2: "value3"}, {key1: "value1", key2: "value32"}] 

我需要通过阵列环,并查看是否在阵列中的任何项具有一定的值。我已经查看了其他问题,并通过大多数循环和创建变量,但我不允许使用var(ES6的东西,我是js noob,我不知道,只是被告知永远不会使用var,总是const)。基本上我需要这样的事情:

if (myArray.contains(object where key1=="value2")) { 
    // do something 
} 

我想函数返回true/false,而不是对象本身。

感谢

+2

'myArray.some只需使用(O => o.key1 == 'value2')'... https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some – deceze

+0

另一种可能的重复:http://*.com/questions/22844560/签,如果对象 - 值存在-中之JavaScript的阵列的对象和 - 如果 - 不添加 – Rajesh

要检查是否在数组中存在的对象,你可以使用some()返回true/false

const myArray = [{key1: "value1", key2: "value2"}, {key1: "value4", key2: "value8"}, {key1: "value1", key2: "value3"}, {key1: "value1", key2: "value32"}] 
 
    
 
if(myArray.some(e => e.key1 == 'value1')) { 
 
    console.log('Exists'); 
 
}

您可以使用Array.prototype.some()

代码:

const myArray = [{key1: "value1", key2: "value2"}, {key1: "value4", key2: "value8"}, {key1: "value1", key2: "value3"}, {key1: "value1", key2: "value32"}]; 
 

 
let isKey1Value2 = myArray.some((elem) => 'value2' === elem.key1); 
 

 
console.log(isKey1Value2);

Array#map与和includes()

const myArray = [{key1: "value1", key2: "value2"}, {key1: "value4", key2: "value8"}, {key1: "value1", key2: "value3"}, {key1: "value1", key2: "value32"}] 
 
console.log(myArray.map(a=>a.key1).includes('value2'))