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