添加项目的对象长度

时间:2018-08-11 13:32:30

标签: javascript arrays object

我有一个包含一些数组项的对象,现在我必须计算所有项的长度。我有一个计算这些项目的想法,我声明了count = 0变量,然后计算了这些项目的长度并添加了count变量。

var obj = {
  item_1: ['item1', 'item2', 'item3', 'item4'],
  item_2: ['item1', 'item2', 'item3', 'item4', 'item5'],
  item_3: ['item1', 'item2', 'item3']
}

var count = 0;

Object.entries(obj).map(item => {
  count += item[1].length
})

console.log(count)

我的问题是:如何在不声明calculate变量的情况下获得此结果?示例:console.log(Object.entries(Obj)....?)

2 个答案:

答案 0 :(得分:9)

您正在寻找减少:

  Object.values(obj).reduce((sum, subarr) => sum + subarr.length, 0)

这是难得的好用例之一,有很多other cases被缩减实际上使代码复杂化,因此有时使用全局变量是更好的方法。

答案 1 :(得分:0)

可以做到

[].concat.apply([], Object.values(obj)).length

或使用ES6

[].concat(...Object.values(obj)).length

我只是在Merge/flatten an array of arrays in JavaScript?

上又增加了一步