gpt4 book ai didi

javascript - 下划线 : sortBy() based on multiple attributes

转载 作者:IT王子 更新时间:2023-10-29 02:40:28 24 4
gpt4 key购买 nike

我正在尝试根据多个属性对包含对象的数组进行排序。即,如果两个对象之间的第一个属性相同,则应使用第二个属性来比较两个对象。例如,考虑以下数组:

var patients = [
[{name: 'John', roomNumber: 1, bedNumber: 1}],
[{name: 'Lisa', roomNumber: 1, bedNumber: 2}],
[{name: 'Chris', roomNumber: 2, bedNumber: 1}],
[{name: 'Omar', roomNumber: 3, bedNumber: 1}]
];

roomNumber 属性对这些进行排序,我将使用以下代码:

var sortedArray = _.sortBy(patients, function(patient) {
return patient[0].roomNumber;
});

这工作正常,但我该如何继续才能正确排序“John”和“Lisa”?

最佳答案

sortBy 表示它是一种稳定的排序算法,因此您应该能够先按第二个属性排序,然后再按第一个属性排序,如下所示:

var sortedArray = _(patients).chain().sortBy(function(patient) {
return patient[0].name;
}).sortBy(function(patient) {
return patient[0].roomNumber;
}).value();

当第二个 sortBy 发现 John 和 Lisa 有相同的房间号时,它将按照找到它们的顺序保留他们,第一个 sortBy 设置为“Lisa ,约翰”。

关于javascript - 下划线 : sortBy() based on multiple attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com