我想按某个字符串值对对象数组进行排序。例如,我有以下对象数组:
const stores = [
{id: 1, name: 'Store1', country: 'USA'},
{id: 2, name: 'Store2', country: 'Canada'},
{id: 3, name: 'Store3', country: 'USA'},
{id: 4, name: 'Store4', country: 'Canada'}
];
我想对该数组进行排序,以便将国家/地区值为“加拿大”的所有对象排在第一位。我知道您可以按数字排序,但我不确定如何按字符串值排序。我该怎么做呢?预先感谢您!
您可以使用
Array.prototype.toSorted()
不通过自定义排序函数改变 JavaScript 中的数组方法来实现此目的:
这是代码示例:
const stores = [ {id: 1, name: 'Store1', country: 'USA'}, {id: 2, name: 'Store2', country: 'Canada'}, {id: 3, name: 'Store3', country: 'USA'}, {id: 4, name: 'Store4', country: 'Canada'} ];
function sortByCountryFirst(array, country) {
return array.toSorted((a, b) => {
if (a.country === country && b.country !== country) {
return -1;
} else if (a.country !== country && b.country === country) {
return 1;
} else {
return 0;
}
});
}
console.log(sortByCountryFirst(stores, 'Canada'));