我有一个如下所示的对象数组:
[
{name: 'George', favNum: '1'},
{name: 'Susan', favNum: '2'},
{name: 'Bob', favNum: '1'},
{name: 'Anna', favNum: '2'}
]
我想首先按 favNum
字段对数组进行排序,然后按字母顺序排序
在结果排序顺序内。最终结果如下所示:
[
{name: 'Bob', favNum: '1'},
{name: 'George', favNum: '1'},
{name: 'Anna', favNum: '2'},
{name: 'Susan', favNum: '2'}
]
有没有办法使用Javascript?为了提供上下文,我在搜索其他帖子后尝试了类似的操作,但仍然无法获得正确的排序顺序:
.sort((first, second) => {
if (first.favNum === second.favNum) {
return first.name > second.name ? 1 : -1
}
return first.favNum >= second.favNum
})
最佳答案
您可以先对我的favNum
进行排序,然后使用localeCompare
按名称排序。
var data = [{name: 'George', favNum: '1'},{name: 'Susan', favNum: '2'},{name: 'Bob', favNum: '1'},{name: 'Anna', favNum: '2'}]
data.sort(function(a, b) {
return a.favNum - b.favNum || a.name.localeCompare(b.name)
})
console.log(data)
关于javascript - 按字段对对象数组进行排序,然后按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910323/