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 如何训练狗狗握手
10 新员工寄语祝福语简短
11 新婚敬酒祝福语大全简短
12 怎么训练狗狗
13 训练狗狗上厕所
14 春蚕老师祝福语简短励志
15 高考好运如愿祝福语简短
16 战哥过年祝福语简短
17 中考感谢朋友祝福语简短
18 长沙旅游祝福语大全简短