Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Gộp đối tượng & cộng dồn một thuộc tính đơn trong JavaScript

Cho hai mảng đối tượng chứa thông tin sản phẩm, gộp chúng sao cho đối tượng cùng id không lặp lại và thuộc tính quantity được cộng dồn.

Ví dụ

const first = [  { id: '57e7a1cd6a3f3669dc03db58', quantity: 3 },  { id: '57e77b06e0566d496b51fed5', quantity: 3 },  { id: '57e7a1cd6a3f3669dc03db58', quantity: 3 },  { id: '57e77b06e0566d496b51fed5', quantity: 3 }];const second = [  { id: '57e7a1cd6a3f3669dc03db58', quantity: 6 },  { id: '57e77b06e0566d496b51fed5', quantity: 6 }];const mergeArray = (first, second) => {  return [...first, ...second].reduce((acc, val, i, arr) => {    const { id, quantity } = val;    const ind = acc.findIndex(el => el.id === id);    if (ind !== -1) {      acc[ind].quantity += quantity;    } else {      acc.push({ id, quantity });    }    return acc;  }, []);};console.log(mergeArray(first, second));

Kết quả

Đầu ra trong console sẽ là:

[  { id: '57e7a1cd6a3f3669dc03db58', quantity: 12 },  { id: '57e77b06e0566d496b51fed5', quantity: 12 } ]