我正在寻找一个函数(最好使用lodash等),该函数将采用数组并产生预期的输出,如下所示:
const arr = [{name: 'Anna', score:4}, {name: 'Bob', score:5}, {name: 'Chris', score:4}]
// expected output
// [{name: 'Anna', score:4}, {name: 'Chris', score:4}, {name: 'Bob', score:5}]
即该函数应按以下顺序排序:
1)“得分”属性的频率
2)“名称”属性(分数相等)
请注意,由于(1),此问题与标记为重复项的问题不同。
答案 0 :(得分:0)
您可以使用sort
函数对特定键进行排序。
const arr = [{name: 'Anna', score:4}, {name: 'Bob', score:5}, {name: 'Chris', score:4}]
arr.sort((a,b) => {
return a.score === b.score ? a.name > b.name : a.score > b.score;
});
console.log(arr);