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

การหาจุดที่ใกล้ต้นทางที่สุดใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของพิกัด arr เป็นอาร์กิวเมนต์แรก และตัวเลข num เป็นอาร์กิวเมนต์ที่สอง

ฟังก์ชันของเราควรค้นหาและส่งกลับค่า num ที่ใกล้เคียงที่สุดกับจุดกำเนิด (0, 0)

(ในที่นี้ ระยะห่างระหว่างจุดสองจุดบนระนาบคือระยะทางแบบยุคลิด)

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr = [[3,3],[5,-1],[-2,4]];
const num = 2;

จากนั้นผลลัพธ์ควรเป็น −

const output = [[3,3],[-2,4]];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [[3,3],[5,-1],[-2,4]];
const num = 2;
const closestPoints = (arr = [], num = 1) => {
   arr.sort(([a, b], [c, d]) => {
      return Math.sqrt(a * a + b * b) - Math.sqrt(c * c + d * d);
   });
   return arr.slice(0, num);
};
console.log(closestPoints(arr, num));

ผลลัพธ์

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

[ [ 3, 3 ], [ -2, 4 ] ]