如果包含多个对象的数组按照我的要求具有一组键值对,我试图记录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"在这种情况下。
答案 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