如何按列值对二维数组进行排序?
2022-08-30 05:23:32
任何人都可以帮我在JavaScript中对2维数组进行排序吗?
它将具有以下格式的数据:
[12, AAA]
[58, BBB]
[28, CCC]
[18, DDD]
排序时应如下所示:
[12, AAA]
[18, DDD]
[28, CCC]
[58, BBB]
所以基本上,按第一列排序。
干杯
任何人都可以帮我在JavaScript中对2维数组进行排序吗?
它将具有以下格式的数据:
[12, AAA]
[58, BBB]
[28, CCC]
[18, DDD]
排序时应如下所示:
[12, AAA]
[18, DDD]
[28, CCC]
[58, BBB]
所以基本上,按第一列排序。
干杯
就是这么简单:
var a = [[12, 'AAA'], [58, 'BBB'], [28, 'CCC'],[18, 'DDD']];
a.sort(sortFunction);
function sortFunction(a, b) {
if (a[0] === b[0]) {
return 0;
}
else {
return (a[0] < b[0]) ? -1 : 1;
}
}
我邀请您阅读文档。
如果要按第二列排序,可以执行以下操作:
a.sort(compareSecondColumn);
function compareSecondColumn(a, b) {
if (a[1] === b[1]) {
return 0;
}
else {
return (a[1] < b[1]) ? -1 : 1;
}
}
最好的方法是使用以下方法,因为第一列中可能存在重复的值。
var arr = [[12, 'AAA'], [12, 'BBB'], [12, 'CCC'],[28, 'DDD'], [18, 'CCC'],[12, 'DDD'],[18, 'CCC'],[28, 'DDD'],[28, 'DDD'],[58, 'BBB'],[68, 'BBB'],[78, 'BBB']];
arr.sort(function(a,b) {
return a[0]-b[0]
});