정렬된 배열 마지막 삽입 인덱스

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 를 사용하여 제공된 이터레이터 함수를 기반으로 정렬된 배열에서 마지막 삽입 인덱스를 찾는 개념을 탐구합니다. 이 랩에서는 배열이 내림차순으로 정렬되었는지 확인하는 방법, 이터레이터 함수를 배열의 모든 요소에 적용하는 방법, 그리고 제공된 이터레이터 함수를 기반으로 요소가 삽입되어야 하는 적절한 마지막 인덱스를 찾는 방법을 다룹니다. 이 랩을 마치면 JavaScript 에서 배열을 조작하고 이터레이터 함수를 사용하는 방법에 대한 이해도가 높아질 것입니다.

함수 기반으로 정렬된 배열에서 마지막 삽입 인덱스를 찾는 방법

코딩을 시작하려면 터미널/SSH 를 열고 node를 입력하세요.

제공된 이터레이터 함수를 기반으로 배열의 정렬 순서를 유지하기 위해 값을 삽입해야 하는 가장 높은 인덱스를 찾는 방법은 다음과 같습니다.

  1. 배열이 내림차순으로 정렬되었는지 확인합니다.
  2. Array.prototype.map()을 사용하여 이터레이터 함수를 배열의 모든 요소에 적용합니다.
  3. 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 에서 더 많은 랩을 연습하여 실력을 향상시킬 수 있습니다.