Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาตัวเลขที่ใกล้ที่สุดในอาร์เรย์ JavaScript

สมมติว่าเราต้องเขียนฟังก์ชันรับอาร์เรย์ตัวเลขและตัวเลขหนึ่ง คืนค่าที่อยู่ในอาร์เรย์และใกล้ที่สุดกับตัวเลขนั้น

เช่น

closest([45,61,53,98,54,12,69,21], 67); // 69
closest([45,61,53,98,54,12,69,21], 64); // 61

เขียนโค้ด

เราจะใช้ Array.prototype.reduce() คำนวณความต่างและคืนความต่างน้อยที่สุดจาก reduce ผลรวมของความต่างน้อยที่สุดและตัวเลขที่ค้นหาจะเป็นคำตอบ

ตัวอย่าง

const closest = (arr, num) => {
  return arr.reduce((acc, val) => {
    if(Math.abs(val - num) < Math.abs(acc)){
      return val - num;
    }else{
      return acc;
    }
  }, Infinity) + num;
}
console.log(closest([45,61,53,98,54,12,69,21], 67));
console.log(closest([45,61,53,98,54,12,69,21], 64));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น

69
61