使用 JavaScript 在陣列中查詢最接近特定數字的兩個元素
問題
我們需要編寫一個 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]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP