如何基于JavaScript中的一列对多维数组进行排序

时间:2012-03-14 08:00:10

标签: javascript arrays multidimensional-array sorting

我在JavaScript中创建了一个4维数组。一列包含String值,另外三列包含float值。我从JSON响应填充前3列,第四列包含值col2和col3的大小。我需要根据col4中的值对整个数组进行排序。以下代码显示了我如何创建数组。有人可以告诉我如何根据col4对这个数组进行排序吗?

     var labels = responseJSON.labels;
     var knowledge = responseJSON.knowledge;
     var interest = responseJSON.interest;

     var label_know_int_array = new Array(3);
     //array item 0 contains all the labels
     label_know_int_array[0] = new Array(200);
     //array item 1 contains knowledge values
     label_know_int_array[1] = new Array(200);
     //array item 2 contains all the interest values
     label_know_int_array[2] = new Array(200);
    //array item 3 contains the magnitude of knowledge and interest
     label_know_int_array[3] = new Array(200);

     for(var i=0;i<labels.length;i++)
         {
                label_know_int_array[0][i] = labels[i];
                var knowVal = knowledge[i];
                var intVal = interest[i];
                label_know_int_array[1][i] = knowVal;
                label_know_int_array[2][i] = intVal ;

                var squareSum = (knowVal*knowVal) + (intVal*intVal);
                var distance = Math.sqrt(squareSum);
                label_know_int_array[3][i] = distance ;


         }

1 个答案:

答案 0 :(得分:1)

您可以使用原生Array.sort()方法

Array.sort方法接受自定义排序的回调

这是一个示例代码

var arr = [
  {
    id : 5,
    name : "john"
  },
  {
    id : 2,
    name : "Sam"
  },
  {
    id : 6,
    name : "adams"
  }
];

// custom sort
 arr.sort(function (a, b) {
    if (a.id > b.id) {
       return 1;   //return any +ve values
    } else if (a.id < b.id) {
       return -1;  // return any -ve values
    } else {
       return 0;  // return zero for equal values
    }
 });

使用此回调可以实现自定义排序功能