소개
이 랩에서는 주어진 속성과 사용자 정의 정렬 배열을 기반으로 객체 배열을 정렬하는 방법을 살펴봅니다. Array.prototype.reduce()와 Array.prototype.sort()를 조합하여 order 배열에 제공된 순서를 기반으로 정렬된 새로운 배열을 생성합니다. 이 랩은 JavaScript 에서 객체 배열을 조작하는 방법을 배우는 좋은 기회입니다.
이 랩에서는 주어진 속성과 사용자 정의 정렬 배열을 기반으로 객체 배열을 정렬하는 방법을 살펴봅니다. Array.prototype.reduce()와 Array.prototype.sort()를 조합하여 order 배열에 제공된 순서를 기반으로 정렬된 새로운 배열을 생성합니다. 이 랩은 JavaScript 에서 객체 배열을 조작하는 방법을 배우는 좋은 기회입니다.
속성 순서를 기반으로 객체 배열을 정렬하려면 다음 단계를 따르세요.
node를 입력하여 코딩 연습을 시작합니다.Array.prototype.reduce()를 사용하여 order 배열에서 값을 키로, 원래 인덱스를 값으로 하는 객체를 생성합니다.Array.prototype.sort()를 사용하여 주어진 배열을 정렬하고, prop이 비어 있거나 order 배열에 없는 요소는 건너뜁니다.다음은 속성 순서를 기반으로 객체 배열을 정렬하는 예시 코드 조각입니다.
const orderWith = (arr, prop, order) => {
const orderValues = order.reduce((acc, v, i) => {
acc[v] = i;
return acc;
}, {});
return [...arr].sort((a, b) => {
if (orderValues[a[prop]] === undefined) return 1;
if (orderValues[b[prop]] === undefined) return -1;
return orderValues[a[prop]] - orderValues[b[prop]];
});
};
orderWith 함수를 사용하여 속성 순서를 기반으로 객체 배열을 정렬할 수 있습니다. 예를 들어:
const users = [
{ name: "fred", language: "Javascript" },
{ name: "barney", language: "TypeScript" },
{ name: "frannie", language: "Javascript" },
{ name: "anna", language: "Java" },
{ name: "jimmy" },
{ name: "nicky", language: "Python" }
];
orderWith(users, "language", ["Javascript", "TypeScript", "Java"]);
/*
[
{ name: 'fred', language: 'Javascript' },
{ name: 'frannie', language: 'Javascript' },
{ name: 'barney', language: 'TypeScript' },
{ name: 'anna', language: 'Java' },
{ name: 'jimmy' },
{ name: 'nicky', language: 'Python' }
]
*/
축하합니다! 속성 순서를 기반으로 객체 배열 정렬 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.