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

配列内のオブジェクトのJavaScriptバブルソート


このようなShoeオブジェクトを作成するコンストラクタークラスがあるとします-

class Shoe {
   constructor(name, price, type) {
      this.name = name;
      this.price = price;
      this.type = type;
   }
};

このクラスを使用して、配列を次のようなオブジェクトで埋めています-

const arr = [
   new Shoe('Nike AirMax 90', '120', 'Casual'),
   new Shoe('Jordan Retro 1', '110', 'Casual'),
   new Shoe('Jadon Doc Martens', '250', 'Seasonal boots'),
   new Shoe('Adidas X Ghosted', '110', 'Athletic'),
   new Shoe('Nike Vapourmax Flyknit', '250', 'Casual'),
   new Shoe('Aldo Loafers', '130', 'Formal'),
   new Shoe('Timberlands', '199', 'Seasonal boots'),
   new Shoe('Converse High Tops', '70', 'Casual'),
   new Shoe('Converse Low Tops', '80', 'Casual'),
   new Shoe('Adidas NMDs', '110', 'Athletic'),
   new Shoe('Heels', '130', 'Formal'),
   new Shoe('Nike AirForce', '150', 'Casual')
];

オブジェクトの価格プロパティに基づいてこのオブジェクトの配列を並べ替えるには、正確にバブルソートアルゴリズムを使用するJavaScript関数を作成する必要があります。

このためのコードは-

になります
class Shoe {
   constructor(name, price, type) {
      this.name = name;
      this.price = price;
      this.type = type;
   }
};
const arr = [
   new Shoe('Nike AirMax 90', '120', 'Casual'),
   new Shoe('Jordan Retro 1', '110', 'Casual'),
   new Shoe('Jadon Doc Martens', '250', 'Seasonal boots'),
   new Shoe('Adidas X Ghosted', '110', 'Athletic'),
   new Shoe('Nike Vapourmax Flyknit', '250', 'Casual'),
   new Shoe('Aldo Loafers', '130', 'Formal'),
   new Shoe('Timberlands', '199', 'Seasonal boots'),
   new Shoe('Converse High Tops', '70', 'Casual'),
   new Shoe('Converse Low Tops', '80', 'Casual'),
   new Shoe('Adidas NMDs', '110', 'Athletic'),
   new Shoe('Heels', '130', 'Formal'),
   new Shoe('Nike AirForce', '150', 'Casual')
];
const bubbleSort = (arr = []) => {
   let swapped;
   do {
      swapped = false;
      for (let i = 0; i < arr.length − 1; i++) {
         if (+arr[i].price > +arr[i + 1].price) {
            let temp = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = temp;
            swapped = true;
         };
      };
   }while (swapped);
}
bubbleSort(arr);
console.log(arr);

出力

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

になります
[
   Shoe { name: 'Converse High Tops', price: '70', type: 'Casual' },
   Shoe { name: 'Converse Low Tops', price: '80', type: 'Casual' },
   Shoe { name: 'Jordan Retro 1', price: '110', type: 'Casual' },
   Shoe { name: 'Adidas X Ghosted', price: '110', type: 'Athletic' },
   Shoe { name: 'Adidas NMDs', price: '110', type: 'Athletic' },
   Shoe { name: 'Nike AirMax 90', price: '120', type: 'Casual' },
   Shoe { name: 'Aldo Loafers', price: '130', type: 'Formal' },
   Shoe { name: 'Heels', price: '130', type: 'Formal' },
   Shoe { name: 'Nike AirForce', price: '150', type: 'Casual' },
   Shoe { name: 'Timberlands', price: '199', type: 'Seasonal boots' },
   Shoe { name: 'Jadon Doc Martens', price: '250', type: 'Seasonal boots'},
   Shoe { name: 'Nike Vapourmax Flyknit', price: '250', type: 'Casual' }
]

  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-