具有更多对象的Jquery排序数组[重复]
Posted
技术标签:
【中文标题】具有更多对象的Jquery排序数组[重复]【英文标题】:Jquery sort array with more objects [duplicate] 【发布时间】:2021-03-16 06:57:06 【问题描述】:我试图对包含许多对象的数组进行排序,但我可以只对第一个值进行排序。 这是我的示例代码: https://jsfiddle.net/v6wc8ufg
我正在尝试按 value1、value2、value3 执行 SQL 顺序
var myArray = [
id: 'a', val: '4', city: 'Spain' ,
id: 'a', val: '1', city: 'Paris' ,
id: 'z', val: '5', city: 'London' ,
id: 'z', val: '4', city: 'Rome' ,
id: 'b', val: '9', city: 'Italy'
];
function SortByName(a, b)
var aName = a.id;
var bName = b.id;
return aName < bName ? -1 : aName > bName ? 1 : 0;
myArray.sort(SortByName);
【问题讨论】:
您要先按id
排序,然后按val
排序吗?你可以这样做:myArray.sort((a,b) => a.id.localeCompare(b.id) || a.val - b.val)
【参考方案1】:
你应该在排序函数返回0
值的时机检查sex
值,这意味着id
是相同的。
return ((aName < bName) ? -1 : ((aName > bName) ? 1 : (a.sex < b.sex) ? -1 : (a.sex > b.sex) ? 1 : 0));
【讨论】:
【参考方案2】:希望这篇文章对你有帮助。
const sortFunc = (a, b) =>
if (a.value1 !== b.value1) return a.value1 > b.value1 ? 1 : -1;
if (a.value2 !== b.value2) return a.value2 > b.value2 ? 1 : -1;
...
return 0;
【讨论】:
以上是关于具有更多对象的Jquery排序数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用jquery或javascript对对象数组进行排序[重复]
为啥数字数组,更多数据排序比对象数组更快,Javascript中的数据更少?