소개
이 랩에서는 JavaScript 를 사용하여 제공된 이터레이터 함수를 기반으로 정렬된 배열에서 마지막 삽입 인덱스를 찾는 개념을 탐구합니다. 이 랩에서는 배열이 내림차순으로 정렬되었는지 확인하는 방법, 이터레이터 함수를 배열의 모든 요소에 적용하는 방법, 그리고 제공된 이터레이터 함수를 기반으로 요소가 삽입되어야 하는 적절한 마지막 인덱스를 찾는 방법을 다룹니다. 이 랩을 마치면 JavaScript 에서 배열을 조작하고 이터레이터 함수를 사용하는 방법에 대한 이해도가 높아질 것입니다.
함수 기반으로 정렬된 배열에서 마지막 삽입 인덱스를 찾는 방법
코딩을 시작하려면 터미널/SSH 를 열고 node를 입력하세요.
제공된 이터레이터 함수를 기반으로 배열의 정렬 순서를 유지하기 위해 값을 삽입해야 하는 가장 높은 인덱스를 찾는 방법은 다음과 같습니다.
- 배열이 내림차순으로 정렬되었는지 확인합니다.
Array.prototype.map()을 사용하여 이터레이터 함수를 배열의 모든 요소에 적용합니다.Array.prototype.reverse()및Array.prototype.findIndex()를 사용하여 제공된 이터레이터 함수를 기반으로 요소가 삽입되어야 하는 적절한 마지막 인덱스를 찾습니다.
아래 코드를 참조하세요:
const sortedLastIndexBy = (arr, n, fn) => {
const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
const val = fn(n);
const index = arr
.map(fn)
.reverse()
.findIndex((el) => (isDescending ? val <= el : val >= el));
return index === -1 ? 0 : arr.length - index;
};
다음은 예시입니다:
sortedLastIndexBy([{ x: 4 }, { x: 5 }], { x: 4 }, (o) => o.x); // 1
요약
축하합니다! 함수 기반 정렬된 배열에서 마지막 삽입 인덱스 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.