我在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 ;
}
答案 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
}
});
使用此回调可以实现自定义排序功能