const arr = [11, 22, 33, 4, 5, 88, 16]
const num = 19;
const closest = (arr, num) => {
var index = 0;
var d_value = Number.MAX_VALUE;
for (var i = 0; i < arr.length; i++) {
var new_d_value = Math.abs(arr[i] - num);
if (new_d_value <= d_value) {
if (new_d_value === d_value && arr[i] < arr[index]) {
continue;
}
index = i;
d_value = new_d_value;
}
}
return arr[index];
}
console.log(closest(arr, num))
const closest2 = (arr, num) => {
const arr2 = arr && arr.map(i => {
i = Math.abs(i - num)
return i
})
var min = arr2 && arr2.reduce(function (prev, cur) {
return Math.min(prev, cur);
});
let index = arr2.indexOf(min)
return arr[index]
}
console.log(closest2(arr, num))
console