gpt4 book ai didi

Javascript 排序自定义比较器函数 - 对已排序的数组进行排序

转载 作者:行者123 更新时间:2023-12-03 01:32:18 33 4
gpt4 key购买 nike

我有以下形式的对象数组:

arr[0] = { 'item1' : 1234, 'item2' : 'a string' };

我首先按'item1'对其进行排序,这很简单。现在我想再次对 arr (按 'item1' 排序)进行排序,但这次是按 'item2' 排序,但仅限于其中的元素'item1' 是相同的。最终的数组如下所示:

arr = [
{ 'item1' : 1234, 'item2' : 'apple' },
{ 'item1' : 1234, 'item2' : 'banana' },
{ 'item1' : 1234, 'item2' : 'custard' },
{ 'item1' : 2156, 'item2' : 'melon' },
{ 'item1' : 4345, 'item2' : 'asparagus' }
];

我尝试为第二种情况编写一个排序函数,如下所示:

arr.sort(function(a,b){
if(a.item1 === b.item1){
return a.item2 > b.item2 ? 1 : a.item2 < b.item2 : -1 : 0;
}
});

我可以将两种排序组合在一个函数中以获得最终的排序数组,但在某些情况下我必须仅按 'item1''item2' 进行排序

最佳答案

您可以有四种不同的比较函数 - 一种按 item1 排序,一种按 item2 排序,一种按 item1 然后 item2 排序,一种按 item2 然后 item1 排序。

例如:

arr.sort(function(a,b){
if(a.item1 == b.item1){
return a.item2 > b.item2 ? 1 : a.item2 < b.item2 ? -1 : 0;
}

return a.item1 > b.item1 ? 1 : -1;
});

关于Javascript 排序自定义比较器函数 - 对已排序的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157590/

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