मान लीजिए, हमारे पास वस्तुओं की एक सरणी है जिसमें प्रत्येक वस्तु में ठीक दो गुण होते हैं, x और yजो एक बिंदु के निर्देशांक का प्रतिनिधित्व करते हैं। हमें एक फ़ंक्शन लिखना है जो इस सरणी में लेता है और एक बिंदु के x और y निर्देशांक के साथ एक वस्तु और हमें दिए गए बिंदु से दूरी (निकटतम से सबसे दूर) के अनुसार सरणी में बिंदुओं (ऑब्जेक्ट्स) को सॉर्ट करना होगा।
द डिस्टेंस फॉर्मूला
यह एक गणितीय सूत्र है जो बताता है कि द्वि-आयामी तल में दो बिंदुओं (x1, y1) और (x2, y2) के बीच की न्यूनतम दूरी −
द्वारा दी जाती है$S=\sqrt{((x2-x1)^2+(y2-y1)^2)}$
हम दिए गए बिंदु से प्रत्येक बिंदु की दूरी की गणना करने के लिए इस सूत्र का उपयोग करेंगे और उसके अनुसार उन्हें क्रमबद्ध करेंगे।
उदाहरण
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); आउटपुट
कंसोल में आउटपुट होगा -
[
{ x: 6, y: 2 },
{ x: 2, y: 6 },
{ x: 7, y: 10 },
{ x: 11, y: 6 },
{ x: 14, y: 10 }
] और यह वास्तव में सही क्रम है क्योंकि (6, 2) (5,4) के सबसे नजदीक है, फिर (2, 6) फिर (7, 10) और इसी तरह आता है।