Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 객체 병합 및 단일 속성 합계

<시간/>

예를 들어 회사의 일부 제품에 대한 정보를 포함하는 두 개의 객체 배열이 있다고 가정해 보겠습니다.

상수 첫 번째 =[ { 아이디:"57e7a1cd6a3f3669dc03db58", 수량:3 }, { 아이디:"57e77b06e0566d496b51fed5",7065050,수량:3 }, { 아이디:"57e7a1cd6a0f366" 수량:3 }];const 초 =[ { 아이디:"57e7a1cd6a3f3669dc03db58", 수량:6 }, { 아이디:"57e77b06e0566d496b51fed5", 수량:6 }];

이제 두 개의 배열을 병합하는 함수를 작성해야 합니다. 동일한 id를 가진 객체가 반복적으로 나타나지 않도록 하고, 또한 objectsduplicate id에 대한 quantity 속성이 함께 추가되도록 하는 것입니다.

따라서 이 함수의 코드를 작성해 보겠습니다 -

예시

상수 첫 번째 =[ { 아이디:"57e7a1cd6a3f3669dc03db58", 수량:3 }, { 아이디:"57e77b06e0566d496b51fed5",7065050,수량:3 }, { 아이디:"57e7a1cd6a0f366" 수량:3 }]; const 두 번째 =[ { 아이디:"57e7a1cd6a3f3669dc03db58", 수량:6 }, { 아이디:"57e77b06e0566d496b51fed5", 수량:6 }];const mergeArray =(첫 번째, 두 번째 반환) => .first, ...second].reduce((acc, val, i, arr) => { const { id, 수량 } =val; const ind =acc.findIndex(el => el.id ===id); if(ind !==-1){ acc[ind].quantity +=수량; }else{ acc.push({ id, 수량 }); } acc 반환; }, []);}console.log( mergeArray(첫 번째, 두 번째));

출력

콘솔의 출력은 -

[ { 아이디:'57e7a1cd6a3f3669dc03db58', 수량:12 }, { 아이디:'57e77b06e0566d496b51fed5', 수량:12 }]