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 ] ]