숫자 배열을 받는 JavaScript 함수를 작성해야 합니다. 함수는 배열의 모든 인접 쌍 중에서 합이 가장 작은 원래 배열에서 인접한 두 요소의 하위 배열을 반환해야 합니다.
배열의 길이가 2보다 작으면 부울 false를 반환해야 합니다.
예를 들어, 입력 배열이 -
인 경우const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
여기서 [-23, 1] 쌍의 합은 배열의 인접한 두 요소에 대해 가장 작은 값인 -22이므로 함수는 [-23, 1]을 반환해야 합니다.
이에 대한 코드는 -
const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
const leastSum = arr => {
if(arr.length <= 2){
return false;
};
const creds = arr.reduce((acc, val, ind) => {
let { smallest, startIndex } = acc;
const next = arr[ind+1] ;
if(!next){
return acc;
}
const sum = val + next;
if(sum < smallest){
startIndex = ind;
smallest = sum;
};
return { startIndex, smallest };
}, {
smallest: Infinity,
startIndex: -1
});
const { startIndex } = creds;
return [arr[startIndex], arr[startIndex + 1]];
};
console.log(leastSum(arr)); 다음은 콘솔의 출력입니다 -
[-23, 1]