您的位置:首页 > Web前端 > JavaScript

JS对多维数组排序

2017-12-05 22:46 190 查看
现有data数组如下:

var data = [[1,2,2],[3,3,1],[2,1,3]];


对data数组按照数组第三维数值进行排序

data.sort(function(x,y){
return x[2] - y[2];
});


其实是数组依次将数组元素复制给x,y,比如首先将data[0]赋给x,data[1]赋给y,然后用x[0] – y[0],根据返回的值,

如果返回的是大于0的数,那么就把数组中x放到y的后面,

如果返回的是0则不变,

如果小于0则将x放到y的前面,

然后第一个排序好之后在进行下面两个的排序,直到整个数组排序完成。

这是默认升序的比较函数,如果要降序排列则只需修改比较方式,改为 return y[0] – x[0] 即可,

这里我们x[0]表示是按第一列进行排序,我们这里也可以按其他列进行排序。这里的排序默认就会修改arr的数组结构,所以排序完arr就是按第一列升序的数组了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: