我想使用每个子数组中的第一个元素对以下数组进行排序:
lst = [[1, 2], [5, 4], [4, 9], [9, 1], [2,2]]
我想对这个列表进行排序,使其看起来像这样:
srt_lst = [[1, 2], [2,2], [4, 9], [5, 4], [9, 1]];
我怎样才能在纯javascript中做到这一点?(没有外部库、下划线等?)
我想使用每个子数组中的第一个元素对以下数组进行排序:
lst = [[1, 2], [5, 4], [4, 9], [9, 1], [2,2]]
我想对这个列表进行排序,使其看起来像这样:
srt_lst = [[1, 2], [2,2], [4, 9], [5, 4], [9, 1]];
我怎样才能在纯javascript中做到这一点?(没有外部库、下划线等?)
Array.sort 方法将比较函数作为可选参数,
您可以像这样指定一个:
function compare(a, b) { .... }
所以使用匿名函数你可以这样做:
lst.sort(function(a,b) {
if (a[0] < b[0]) return -1;
if (b[0] < a[0]) return 1;
return 0;
});
注意:虽然 sort 返回排序后的数组,但它也会作用于您正在运行该方法的数组,因此如果您需要保持原始lst
数组的完整和原始顺序,这是值得牢记的,您可能必须使执行排序操作之前的克隆。