假设现在有一个二维数据:var arr=[[1,11],[2,13],[3,12]];
请问如何排序使其为:var arr=[[1,11],[2,12],[3,13]];

解决方案 »

  1.   

    不知道你想实现的是这样的结果:
    <script type="text/javascript">
    var arr=[[1,11],[2,13],[3,12]];
    var arrtmp = arr[0];
    for (i = 1; i < arr.length; i ++) arrtmp = arrtmp.concat(arr[i]); //把二维数组所有元素链接为一维数组
    function sortNumber(a,b) { return a - b; }
    arrtmp.sort(sortNumber); //按数值大小排序
    var arr1 = new Array(), arr2 = new Array();
    arr1 = arrtmp.slice(0,arrtmp.length / 2);
    arr2 = arrtmp.slice(arrtmp.length / 2); //把arrtmp等分为两个数组
    var arrResult = new Array();
    for (i = 0; i < arr1.length; i ++) arrResult.push(Array(arr1[i],arr2[i]));
    alert(arrResult);
    </script>
      

  2.   

    <script type="text/javascript">
    var arr=[[1,11],[2,13],[3,12]];
    // 先排序,后调整索引
    arr.sort(function(a1, a2){
    return a1[1] - a2[1];
    });// 调整索引
    var keys = [];
    for (i = 0; i < arr.length; i++) keys[i] = arr[i][0];
    keys.sort(function(a1, a2){
    return a1 - a2;
    });
    for (i = 0; i < arr.length; i++) arr[i][0] = keys[i];
    alert(arr);
    </script>