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

JavaScriptの2つのプロパティでオブジェクトの配列を並べ替える


このようなオブジェクトの配列があるとします-

const arr = [
   { resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri−Seal
   Completo", resPhoto: "Tri−Sealseries.png", resHP: 1.5 },
   { resVal: "25FA2", resFlow: 52, resName: "Rendimiento Tri−Seal
   Completo", resPhoto: "Tri−Sealseries.png", resHP: 2 },
   { resVal: "45FA2", resFlow: 53, resName: "Rendimiento Hi−Cap
   Completo", resPhoto: "HighCapseries.png", resHP: 2 },
   { resVal: "35FA2", resFlow: 59, resName: "Rendimiento Hi−Cap
   Completo", resPhoto: "HighCapseries.png", resHP: 2 }
];

そのようなオブジェクトの配列を1つ取り込むJavaScript関数を作成する必要があります。関数は、2つの異なるプロパティに基づいてこの配列を並べ替える必要があります-

  • 高い「resFlow」値で並べ替えます

  • ただし、「resHP」の値は最も低くなります。

アプローチ

キーの指定された順序とその並べ替え順序には、連鎖アプローチを使用しています。

配列はプロパティ-

で並べ替えられます
  • resHP、昇順、

  • resFlow、降順。

デルタの計算で機能し、これは2つのオブジェクトの関係を反映しています。値がゼロの場合、2つの値は等しく、次のデルタが計算されて返されます。

このためのコードは-

になります
const arr = [
   { resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri−Seal
   Completo", resPhoto: "Tri−Sealseries.png", resHP: 1.5 },
   { resVal: "25FA2", resFlow: 52, resName: "Rendimiento Tri−Seal
   Completo", resPhoto: "Tri−Sealseries.png", resHP: 2 },
   { resVal: "45FA2", resFlow: 53, resName: "Rendimiento Hi−Cap
   Completo", resPhoto: "HighCapseries.png", resHP: 2 },
   { resVal: "35FA2", resFlow: 59, resName: "Rendimiento Hi−Cap
   Completo", resPhoto: "HighCapseries.png", resHP: 2 }
];
const sortByTwo = (arr = []) => {
   arr.sort((a, b) => {
      return a.resHP − b.resHP || b.resFlow − a.resFlow;
   });
};
sortByTwo(arr);
console.log(arr);

出力

そして、コンソールの出力は-

になります
[
   {
      resVal: '25FA15',
      resFlow: 49,
      resName: 'Rendimiento Tri−Seal Completo',
      resPhoto: 'Tri−Sealseries.png',
      resHP: 1.5
   },
   {
      resVal: '35FA2',
      resFlow: 59,
      resName: 'Rendimiento Hi−Cap Completo',
      resPhoto: 'HighCapseries.png',
      resHP: 2
   },
   {
      resVal: '45FA2',
      resFlow: 53,
      resName: 'Rendimiento Hi−Cap Completo',
      resPhoto: 'HighCapseries.png',
      resHP: 2
   },
   {
      resVal: '25FA2',
      resFlow: 52,
      resName: 'Rendimiento Tri−Seal Completo',
      resPhoto: 'Tri−Sealseries.png',
      resHP: 2
   }
]

  1. JavaScript-配列オブジェクトの長さ

    JavaScriptのlengthプロパティは、オブジェクトのサイズを返します。以下は、文字列および配列オブジェクトの長さのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document

  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-