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 } ]