JS对多维数组排序

来源:互联网 发布:数据库管理器 编辑:程序博客网 时间:2024/05/17 14:17

现有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就是按第一列升序的数组了。