Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การหาสององค์ประกอบที่ใกล้เคียงที่สุดกับจำนวนเฉพาะในอาร์เรย์โดยใช้ 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]