使用 JavaScript 在数组中查找最接近特定数字的两个元素
javascriptweb developmentfront end technology
问题
我们需要编写一个 JavaScript 函数,该函数将一个排序的整数数组 arr 作为第一个参数,将目标数字作为第二个参数。
我们的函数应返回一个恰好包含两个数字的数组,这两个数字存在于数组 arr 中,并且最接近目标。输出数组也应按升序排序。
例如,如果函数的输入是
输入
const arr = [1, 2, 3, 4, 5]; const target = 3;
输出
const output = [2, 3];
示例
以下是代码 −
const arr = [1, 2, 3, 4, 5]; const target = 3; const findClosest = (arr = [], target = 1) => { const size = 2; return arr.sort((a, b) => { const distanceA = Math.abs(a - target) const distanceB = Math.abs(b - target) if (distanceA === distanceB) { return a - b } return distanceA - distanceB }).slice(0, size) .sort((a, b) => a - b); }; console.log(findClosest(arr, target));
输出
[2, 3]