我已经为这个问题绞尽脑汁了很长时间,即使是艰难的感觉也是一件容易的事。我有一个包含一组对象的数组。该数组如下所示:
[ { key1: 'ok', key2: 'ok', key3: '--' },
{ key1: 'ok', key2: '--', key3: 'ok' },
{ key1: 'ok', key2: 'ok', key3: '--' } ]
我想要一个比较对象的函数,并返回值都为“ok”的键。在这种情况下,我希望它返回
key1
我一直在看Compare objects in an array寻求灵感,但它就是不这样做。
有人有什么建议吗?会是救命稻草
最佳答案
您可以迭代数组并过滤键。
var array = [{ key1: 'ok', key2: 'ok', key3: '--' }, { key1: 'ok', key2: '--', key3: 'ok' }, { key1: 'ok', key2: 'ok', key3: '--' }],
result = array.reduce(function (r, o) {
return r.filter(function (k) {
return o[k] === 'ok';
});
}, Object.keys(array[0]));
console.log(result);
ES6
var array = [{ key1: 'ok', key2: 'ok', key3: '--' }, { key1: 'ok', key2: '--', key3: 'ok' }, { key1: 'ok', key2: 'ok', key3: '--' }],
result = array.reduce((r, o) => r.filter(k => o[k] === 'ok'), Object.keys(array[0]));
console.log(result);
关于javascript - 如何比较数组中对象之间的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42033872/