문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
array에서 우선 sort
로 정렬을 해준다.
array가 [3, 10, 28], n이 20인 경우
예를들어 Math.abs(20 - 3) - Math.abs(20 - 10)로 하면
n-a와 n-b의 차이를 비교합니다.
결과적으로 절대값이 작은 순서대로 정렬이 된다.
그리고 절대값이 같은 경우엔 a와 b를 원래 순서로 정렬하면 된다.
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return a - b;
});
// 1,2,3,10
const arr = [2, 1, 3, 10];
arr.sort(function(a, b) {
return b - a;
});
// 10,3,2,1
function solution(array, n) {
array.sort((a, b) => Math.abs(n - a) - Math.abs(n - b) || a - b)
return array[0]
}