可以使用JavaScript的Array.sort()方法,配合自定义比较函数,对特定对象属性值进行排序。比较函数返回负值则第一个参数会排在前面,返回正值则第二个参数会排在前面,返回0则两个参数保持原先的顺序不变。示例如下:
const products = [
{ name: 'iPhone 12', price: 999 },
{ name: 'Samsung Galaxy S21', price: 799 },
{ name: 'Google Pixel 5', price: 699 },
{ name: 'OnePlus 9 Pro', price: 969 }
];
// 按照价格从低到高排序
products.sort((a, b) => a.price - b.price);
console.log(products);
// 按照名称进行排序
products.sort((a, b) => {
const nameA = a.name.toUpperCase();
const nameB = b.name.toUpperCase();
if (nameA < nameB) {
return -1;
} else if (nameA > nameB) {
return 1;
} else {
return 0;
}
});
console.log(products);
输出:
[
{ name: 'Google Pixel 5', price: 699 },
{ name: 'Samsung Galaxy S21', price: 799 },
{ name: 'iPhone 12', price: 999 },
{ name: 'OnePlus 9 Pro', price: 969 }
]
[
{ name: 'Google Pixel 5', price: 699 },
{ name: 'iPhone 12', price: 999 },
{ name: 'OnePlus 9 Pro', price: 969 },
{ name: 'Samsung Galaxy S21', price: 799 }
]