如果包含多个对象的数组在javascript中具有一组键值对,则返回true

时间:2017-07-23 12:08:51

标签: javascript

如果包含多个对象的数组按照我的要求具有一组键值对,我试图记录true

我的代码:

var myArray = [
  {'key' : "test 0", 'value' : 0},
  {'key' : "test 1", 'value' : 1},
  {'key' : "SELECT_ME", 'value' : 2}, // Index : 2
  {'key' : "test 3", 'value' : 3},
  {'key' : "SELECT_YOU", 'value' : 4} // Index: 4
];

我想在这里:如果所有的对象都在" myArray"然后有一些键值对" myArray"应该返回" true"。

示例:索引:2和索引:4个对象分别具有'key' : "SELECT_ME"'key' : "SELECT_YOU"的键值对。那么" myArray"应该返回" true"在这种情况下。

2 个答案:

答案 0 :(得分:0)

if(myArray.every(pair=>"key" in pair && "value" in pair)) alert("valid");

答案 1 :(得分:0)

您可以使用密钥检查给定属性是否等于给定值/值,并使用Array#some进行迭代。



function check(array, key, values) {
    values = [].concat(values);
    return array.some(function (o) {
        return values.indexOf(o[key]) !== -1;
    });
}

var array = [{ key: "test 0", value: 0 }, { key: "test 1", value: 1 }, { key: "SELECT_ME", value: 2 }, { key: "test 3", value: 3 }, { key: "SELECT_YOU", value: 4 }];

console.log(check(array, 'key', ['SELECT_ME', 'SELECT_YOU'])); // true
console.log(check(array, 'key', 'SELECT_ME'));                 // true
console.log(check(array, 'value', 3));                         // true
console.log(check(array, 'key', 'foo'));                       // false