Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

指定されたポイントからの昇順距離でポイントの配列を並べ替えるJavaScript


たとえば、オブジェクトの配列があり、各オブジェクトには、点の座標を表すxとyの2つのプロパティがあります。この配列と、点のx座標とy座標を持つオブジェクトを取り込む関数を記述し、指定された点からの距離(最も近いものから最も遠いもの)に従って配列内の点(オブジェクト)を並べ替える必要があります。

>

距離の計算式

これは、2次元平面内の2点(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)というようになります。


  1. JavaScript Array.from()メソッド

    Array.from()は、指定された配列インスタンスから新しい配列オブジェクトを作成します。 以下は、配列from()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docume

  2. JavaScriptのArray.prototype.sort()。

    JavaScript Array.prototype.sort()メソッドは、配列の並べ替えに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、Array.prototype.sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-