Mô tả vấn đề
Chúng ta cần viết hàm JavaScript nhận vào mảng tọa độ arr làm đối số 1, và số num làm đối số 2. Hàm tìm và trả về num điểm gần gốc tọa độ (0, 0) nhất. (Khoảng cách là khoảng cách Euclid.)
Ví dụ, nếu đầu vào là:
const arr = [[3,3],[5,-1],[-2,4]]; const num = 2;
Thì đầu ra nên là:
const output = [[3,3],[-2,4]];
Ví dụ minh họa
Mã thực hiện (sắp xếp theo khoảng cách):
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));Đầu ra
Kết quả trong console sẽ là:
[ [ 3, 3 ], [ -2, 4 ] ]