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' }
]热门推荐
10 送女孩的简短祝福语
11 艺校元旦祝福语大全简短
12 中秋送礼的祝福语简短
13 考试前看书祝福语简短
14 给妹妹婚礼祝福语简短
15 端午祝福语安康-简短优美
16 伴娘送亲祝福语简短精辟
17 企业开工花束祝福语简短
18 洁字谐音祝福语简短