Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript를 사용하여 배열의 특정 숫자에 가장 가까운 두 요소 찾기

<시간/>

문제

정렬된 정수 배열 arr을 첫 번째 인수로, 대상 번호를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 배열 arr에 존재하고 대상에 가장 가까운 정확히 두 개의 숫자의 배열을 반환해야 합니다. 출력 배열도 오름차순으로 정렬되어야 합니다.

예를 들어 함수에 대한 입력이

인 경우

입력

const arr = [1, 2, 3, 4, 5];
const target = 3;

출력

const output = [2, 3];

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 4, 5];
const target = 3;
const findClosest = (arr = [], target = 1) => {
   const size = 2;
   return arr.sort((a, b) => {
      const distanceA = Math.abs(a - target)
      const distanceB = Math.abs(b - target)
      if (distanceA === distanceB) {
         return a - b
      }
      return distanceA - distanceB
   }).slice(0, size)
   .sort((a, b) => a - b);
};
console.log(findClosest(arr, target));

출력

[2, 3]