例如:[1, 2, 4, 6, 7], 5 ===> [4,6]
[1,2,4,6,7],100 ===>[7]
思路:首先我们对传入的数组进行遍历,拿数组中的每一项与num做差并且把结果绝对值,拿到的结果插入到新的数组中,找到新数组中的最小值并保存到变量firstNum中。接下来对新数组进行遍历,找到最小值的下标,然后通过这个下标去原数组中找到对应的元素,即为最接近的数。
const find = (arr, num) => {
let newArr = [];
let arr1 = [];
for (let i = 0; i < arr.length; i++) {
newArr.push(Math.abs(arr[i] - num));
if (arr.length === newArr.length) {
const firstNum = Math.min(...newArr);
for (let j = 0; j < newArr.length; j++) {
if (newArr[j] === firstNum) {
arr1.push(arr[j]);
}
}
}
}
return arr1;
};
console.log(find([1, 2, 4, 6, 7], 5));