소개
이 랩에서는 제공된 비교자 함수를 기반으로 고유하지 않은 배열 값을 필터링하는 JavaScript 함수를 살펴봅니다. Array.prototype.filter() 및 Array.prototype.every()를 사용하여 비교자 함수를 기반으로 고유한 값만 포함하는 새로운 배열을 생성합니다. 이 랩은 JavaScript 배열 메서드에 대한 이해를 높이고 이를 사용하여 데이터를 조작하는 방법을 개선하는 것을 목표로 합니다.
함수를 사용하여 고유하지 않은 배열 값 필터링
코딩 연습을 시작하려면 터미널/SSH 를 열고 node를 입력하십시오.
이 코드는 제공된 비교자 함수를 기반으로 배열에서 고유하지 않은 값을 필터링합니다. 이를 달성하기 위한 단계는 다음과 같습니다.
Array.prototype.filter()및Array.prototype.every()를 사용하여 비교자 함수fn을 기반으로 고유한 값만 포함하는 새로운 배열을 생성합니다.- 비교자 함수는 비교되는 두 요소의 값과 해당 인덱스, 총 4 개의 인수를 받습니다.
- 함수
filterNonUniqueBy는 위의 단계를 구현하고 고유한 값 배열을 반환합니다.
const filterNonUniqueBy = (arr, fn) =>
arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
이 함수를 사용하는 방법의 예는 다음과 같습니다.
filterNonUniqueBy(
[
{ id: 0, value: "a" },
{ id: 1, value: "b" },
{ id: 2, value: "c" },
{ id: 1, value: "d" },
{ id: 0, value: "e" }
],
(a, b) => a.id === b.id
); // [ { id: 2, value: 'c' } ]
이 코드는 간결하고 명확하며 일관성이 있으며 예상대로 작동해야 합니다.
요약
축하합니다! 함수 기반으로 고유하지 않은 배열 값 필터링 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.