मान लीजिए, हमारे पास ऑब्जेक्ट्स का एक एरे है जिसमें प्रत्येक ऑब्जेक्ट में ठीक दो प्रॉपर्टीज हैं, 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) और इसी तरह।