检查,如果在阵列字典对象包含在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,而不是对象本身。
感谢
答
要检查是否在数组中存在的对象,你可以使用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);
答
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'))
'myArray.some只需使用(O => o.key1 == 'value2')'... https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some – deceze
另一种可能的重复:http://*.com/questions/22844560/签,如果对象 - 值存在-中之JavaScript的阵列的对象和 - 如果 - 不添加 – Rajesh