javascript - 如何比较数组中对象之间的值?

标签 javascript arrays object

我已经为这个问题绞尽脑汁了很长时间,即使是艰难的感觉也是一件容易的事。我有一个包含一组对象的数组。该数组如下所示:

[ { 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/

相关文章:

ruby - 传递对方法的引用后,任何使用该引用的 mod 在方法外部都不可见 - Ruby?

Python:将对象保存在文件中

Java Objects类和方法程序麻烦

JavaScript window.print() 不工作

javascript - 使用 Loopback 实现更改密码

c++ - "expression must have class type"错误是什么意思?

android - 字节数组音频连接Android

javascript:索引期间在对象上调用了哪些函数?

javascript - 用于替换多个缩写的 jQuery/Javascript 解决方案

php - 如何将父菜单和子菜单类设置为事件