다음과 같이 정렬된(증가하는 순서) 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 ] ]