ধরা যাক, আমাদের কাছে বস্তুর একটি বিন্যাস রয়েছে যার প্রতিটি বস্তুর ঠিক দুটি বৈশিষ্ট্য রয়েছে, x এবং yt যা একটি বিন্দুর স্থানাঙ্ক উপস্থাপন করে। আমাদের একটি ফাংশন লিখতে হবে যা এই অ্যারেতে নেয় এবং একটি বিন্দুর 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) এবং আরও অনেক কিছু৷