Cho mảng object mỗi object có x, y là tọa độ điểm. Viết hàm nhận mảng này và object điểm tham chiếu, sắp xếp các điểm theo khoảng cách từ điểm tham chiếu (gần đến xa).
Công thức khoảng cách
Khoảng cách giữa (x1,y1) và (x2,y2): S = sqrt((x2-x1)^2 + (y2-y1)^2)
Dùng công thức này tính khoảng cách và sắp xếp.
Ví dụ
const coordinates = [{x:2,y:6},{x:14,y:10},{x:7,y:10},{x:11,y:6},{x:6,y:2}];
const distance = (coor1, coor2) => {
const x = coor2.x - coor1.x;
const y = coor2.y - coor1.y;
return Math.sqrt((x*x) + (y*y));
};
const sortByDistance = (coordinates, point) => {
const sorter = (a, b) => distance(a, point) - distance(b, point);
coordinates.sort(sorter);
};
sortByDistance(coordinates, {x: 5, y: 4});
console.log(coordinates);Kết quả
Đầu ra trong console sẽ là:
[
{ x: 6, y: 2 },
{ x: 2, y: 6 },
{ x: 7, y: 10 },
{ x: 11, y: 6 },
{ x: 14, y: 10 }
]Thứ tự đúng vì (6,2) gần (5,4) nhất, rồi (2,6), (7,10)...