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 新房祝福语简短10字
14 长辈新年祝福语大全简短
15 新年给大家简短祝福语
16 生日祝福语简短独特姑姑
17 芭比的婚礼祝福语简短
18 邀请新人祝福语简短英文