计算复合对象中数组字段中包含的元素数

时间:2016-12-15 07:35:15

标签: javascript lodash

AccessToken

我期待计数值为3。

我的功能 -

var obj = { 0:["abc", "pqr"], 1:["xyz"] };

这有效,但我正在寻找使用lodash lib函数的更好解决方案。

2 个答案:

答案 0 :(得分:3)

获取对象的值后,您可以使用_.sumBy

var obj = { a: ["abc", "pqr"], b: ["xyz"] };
var total = _(obj).values().sumBy('length');
console.log(total);
<script src="https://cdn.jsdelivr.net/lodash/4.16.3/lodash.min.js"></script>

答案 1 :(得分:1)

使用_.flatten

var res = _.chain(obj)
    .values() // to array of values
    .flatten() 
    .size()
    .value()

注意

对于许多元素来说它可能是昂贵的,最好使用the _.sumBy solution