SOURCE

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 命令行工具 X clear

                    
>
console