특정 속성을 가진 객체를 가져오려면 두 배열 모두에서 개별적으로 reduce() 개념을 사용합니다. 연결할 필요가 없습니다. 다음이 학생 이름과 학생 표시가 있는 개체라고 가정해 보겠습니다.
var sectionAStudentDetails =
[
{studentName: 'John', studentMarks: 78},
{studentName: 'David', studentMarks: 65},
{studentName: 'Bob', studentMarks: 98}
];
let sectionBStudentDetails =
[
{studentName: 'John', studentMarks: 67},
{studentName: 'David', studentMarks: 89},
{studentName: 'Bob', studentMarks: 97}
]; 다음은 둘 다에 reduce()를 구현하고 더 높은 값(marks)을 가진 객체를 가져오는 코드입니다. -
예시
var sectionAStudentDetails =
[
{studentName: 'John', studentMarks: 78},
{studentName: 'David', studentMarks: 65},
{studentName: 'Bob', studentMarks: 98}
];
let sectionBStudentDetails =
[
{studentName: 'John', studentMarks: 67},
{studentName: 'David', studentMarks: 89},
{studentName: 'Bob', studentMarks: 97}
];
function concatTwoArraysWithoutConcatFunction(arrayValues, k) {
const previousValue = arrayValues[k.studentName];
if (!previousValue || k.studentMarks >= previousValue.studentMarks)
arrayValues[k.studentName] = k;
return arrayValues;
}
const setionA =
sectionAStudentDetails.reduce(concatTwoArraysWithoutConcatFunction, {});
const sectionB = sectionBStudentDetails.reduce(concatTwoArraysWithoutConcatFunction, setionA);
console.log(Object.values(sectionB)); 위의 프로그램을 실행하려면 다음 명령을 사용해야 합니다 -
node fileName.js.
여기에서 내 파일 이름은 demo84.js입니다.
출력
이것은 다음과 같은 출력을 생성합니다 -
PS C:\Users\Amit\JavaScript-code> node demo84.js
[
{ studentName: 'John', studentMarks: 78 },
{ studentName: 'David', studentMarks: 89 },
{ studentName: 'Bob', studentMarks: 98 }
]