一个数组对象内相同id对象的某个值相加

66 阅读1分钟

    let arr = [

        { name: "王五", id: 13, price: 40 },

        { name: "李四", id: 12, price: 10 },

        { name: "小明", id: 12, price: 30 },

        { name: "张三", id: 1, price: 0 },

        { name: "小红", id: 10, price: 20 },

        { name: "小红0000", id: 10, price: 300 },

    ];

    let id = [];

    let pricesum = {};

    arr.forEach((item, index) => {

        id.push(item.id);

    });

    id = [...new Set(id)];

  
  


    id.forEach((ite) => {

        pricesum[ite] = 0;

    });

  


    arr.forEach((i) => {

        pricesum[i.id] = pricesum[i.id] + i.price;

    });

  


    arr.forEach((items, index) => {

        arr[index].sum = pricesum[items.id];

    });

    console.log(arr);

}

  
  


gen()

输出:

    { name: '王五', id: 3, price: 40, sum: 40 },
    { name: '李四', id: 2, price: 10, sum: 40 },
    { name: '小明', id: 2, price: 30, sum: 40 },
    { name: '张三', id: 1, price: 0, sum: 20 },
    { name: '小红', id: 1, price: 20, sum: 20 }
]