ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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 ] ]