1. // var arr = [500, 400, 320, 200, 1, 10, 8, 100, 130, 120, 135, 140, 180, 190, 170, -1, -2, -4, -53];
    2. var arr1 = [0.001, 0.2, -0.012, 0.234, 0.098, -0.119, 0.043, 0.0002]
    3. var targetNum1 = 0.21;
    4. function findCloseNum(arr, targetNum) {
    5. // 保存最接近目标数值的数组中的索引
    6. let index = null;
    7. // 保存差值绝对值,默认为最大值
    8. let value = Number.MAX_VALUE
    9. for(let i = 0; i < arr.length; i++) {
    10. let newValue = Math.abs(arr[i] - targetNum); // 新差值
    11. // 差值比较,保存最小的差值
    12. if (newValue <= value) {
    13. // 若差值相等,取大
    14. if (newValue === value && arr[i] < arr[index]) {
    15. continue;
    16. }
    17. index = i;
    18. value = newValue
    19. }
    20. }
    21. return arr[index]
    22. }
    23. findCloseNum(arr1, targetNum1);