예를 들어 숫자 배열과 숫자를 입력받아 배열에 존재하는 가장 가까운 값을 해당 숫자에 반환하는 함수를 작성해야 한다고 가정해 보겠습니다.
예를 들어 -
closest([45,61,53,98,54,12,69,21], 67); //69 closest([45,61,53,98,54,12,69,21], 64); //61
따라서 코드를 작성해 보겠습니다.
Array.prototype.reduce() 메서드를 사용하여 차이를 계산하고 reduce 함수에서 가장 작은 차이를 반환하고 가장 작은 차이와 검색한 숫자의 합이 필요한 숫자가 됩니다.
다음은 이에 대한 코드입니다 -
예시
const closest = (arr, num) => { return arr.reduce((acc, val) => { if(Math.abs(val - num) < Math.abs(acc)){ return val - num; }else{ return acc; } }, Infinity) + num; } console.log(closest([45,61,53,98,54,12,69,21], 67)); console.log(closest([45,61,53,98,54,12,69,21], 64));
출력
콘솔에서 이 코드의 출력은 -
69 61