计算多维对象中某些键的“ true”

时间:2019-02-14 12:16:58

标签: javascript

我有一个(group)个对象数组。在每个组对象内部,都有一个(item)个对象的数组。

每个对象(组和项)都包含一个称为show_on_graph的键

我想移动到每个对象上,以计算将多少show_on_graph设置为true。

是否存在执行此操作的既定方法,还是只需要创建一种自定义方法来迭代或映射所有内容以计算true值?

enter image description here

2 个答案:

答案 0 :(得分:1)

应该是

const count = toppics.reduce((sum, val) => {
    if (val.show_on_graph) {
        sum++;
    }
    return sum;
}, 0);

如果您使用lodash_.countBy应该是您要寻找的人

答案 1 :(得分:0)

您可以通过迭代对象的所有键/值对来采取迭代和递归的方法,然后对找到的对象或嵌套对象进行计数。

function getCount(object, key, value) {         
    if (!object || typeof object !== 'object') return 0;
    return Object
        .entries(object)
        .reduce((c, [k, v]) => c + (k === key && v === value || getCount(v)), 0);
}

致电

getCount(object, 'show_on_graph', true);