1、演示数据

  demo: [
      { key: '1', amount: '1' },
      { key: '1', amount: '2' },
      { key: '2', amount: '3' },
      { key: '2', amount: '4' },
    ],

2、公共方法

  // Array      要计算的数组
  // Sumfield   要计算的字段
  // Field      key值 
  baseArraySum(Array, Sumfield, Field) {
    // reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
    const objValue = Array.reduce((obj, item) => {
      if (!obj[item[Field]]) {
        obj[item[Field]] = 0
      }
      obj[item[Field]] += Number(item[Sumfield])
      return obj
    }, {})
    const newArray = Object.keys(objValue).map((key) => ({
      [Field]: key,
      [Sumfield]: objValue[key],
    }))
    return newArray
  }

3、用法

this.baseArraySum(this.demo, 'amount', 'key')

4、结果

posted on 2022-11-08 18:07  丶凉雨拾忆  阅读(601)  评论(0编辑  收藏  举报