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

JavaScript - 배열의 항목 간 거리 찾기

<시간/>

다음과 같이 정렬된(증가하는 순서) Numbers 배열이 있다고 가정합니다. -

const arr = [2, 5, 7, 8, 9];

그러한 배열을 취하는 JavaScript 함수를 작성해야 합니다. 함수는 입력 배열의 각 요소에 대해 새 하위 배열을 생성해야 합니다.

하위 배열에는 차이(바로 그 요소와 후속 요소의 차이) 요소가 포함되어야 합니다.

따라서 첫 번째 배열 요소의 경우 차이점은 -

5 - 2 = 3
7 - 2 = 5
8 - 2 = 6
9 - 2 = 7

따라서 첫 번째 요소의 하위 배열은 -

여야 합니다.
[3, 5, 6, 7]

마찬가지로 두 번째 요소의 경우 -

여야 합니다.
[2, 3, 4]

세 번째 요소의 경우 -

[1, 2]

네 번째 -

[1]

그리고 다섯 번째는 마지막 요소이기 때문에 남은 항목이 없으므로 마지막 요소는 고려하지 않습니다.

따라서 전체 배열의 출력은 -

여야 합니다.
const output = [
   [3, 5, 6, 7],
   [2, 3, 4],
   [1, 2],
   [1]
];

예시

이에 대한 코드는 -

const arr = [2, 5, 7, 8, 9];
const distanceBetween = (arr,r = []) => {
   if(r.length <= arr.length-2) {
      let temp = [];
      let b = arr[r.length];
      arr.forEach(e => temp.push(e - b));
      r.push(temp.filter(e => e > 0));
      return distanceBetween(arr,r);
   } else {
      return r;
   };
}
console.log(distanceBetween(arr));

출력

콘솔의 출력은 -

[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]