JavaScript Bubble对数组中的对象进行排序
假设我们有一个构造函数类,可以创建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函数,该函数精确地使用冒泡排序算法根据对象的price属性对该对象数组进行排序。
示例
为此的代码将是-
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 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西