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

자바스크립트에서 객체 컬렉션을 줄이고 병합하는 가장 좋은 방법은 무엇입니까?

<시간/>

개체 컬렉션을 줄이고 병합하는 가장 좋은 방법은 Reduce()와 함께 Object.values() 개념을 사용하는 것입니다.

다음은 개체입니다 -

var details = [
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 11, marks: 98, studentName: "Bob" }
];

예시

다음은 축소 및 병합하는 코드입니다 -

var details = [
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 11, marks: 98, studentName: "Bob" }
];
output = Object.values(details.reduce((value, object) => {
   if (value[object.studentId]) {
      ['marks'].forEach(key => value[object.studentId][key] = value[object.studentId][key] + object[key]);
      } else {
         value[object.studentId] = { ...object };
   }
   return value;
}, {}));
console.log(output);

위의 프로그램을 실행하려면 다음 명령을 사용하십시오 -

node fileName.js.

여기에서 내 파일 이름은 demo237.js입니다.

출력

출력은 다음과 같습니다 -

PS C:\Users\Amit\javascript-code> node demo237.js
[
   { studentId: 10, marks: 150, studentName: 'John' },
   { studentId: 11, marks: 98, studentName: 'Bob' }
]