代码之家  ›  专栏  ›  技术社区  ›  Mina

添加对象的项长度

  •  1
  • Mina  · 技术社区  · 6 年前

    我有一个带有数组项的对象,现在必须计算所有项的长度。我有办法计算这些项目,我宣布 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 回复  |  直到 6 年前
        1
  •  8
  •   Jonas Wilms    6 年前

    您正在寻找reduce:

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

    这是一个罕见的好例子,有很多 other cases

        2
  •  0
  •   ashish singh    6 年前

    你可以的

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

    或使用ES6

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

    Merge/flatten an array of arrays in JavaScript?