2017-05-08 69 views
-1

一定值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://stackoverflow.com/questions/22844560/籤,如果對象 - 值存在-中之JavaScript的陣列的對象和 - 如果 - 不添加 – Rajesh

回答

0

要檢查是否在數組中存在的對象,你可以使用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'); 
 
}

1

您可以使用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);

1

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'))

相關問題