2012-03-14 58 views
1

我在JavaScript中創建了一個4維數組。一列包含字符串值,另外三列包含浮點值。我從JSON響應中填充前3列,第四列包含值col2和col3的大小。我需要根據col4中的值對整個數組進行排序。以下代碼顯示了我如何創建數組。有人可以告訴我如何基於col4對這個數組進行排序嗎?如何在JavaScript中基於一列對多維數組進行排序

 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

這是一個2維陣列,你需要重新排序你的尺寸 – kirilloid 2012-03-14 08:04:13

+0

@kirilloid - 這不是一個4維數組嗎?我不明白你的評論。你是什​​麼意思我必須重新排列尺寸? – Paba 2012-03-14 08:09:07

+0

這是一個2D數組:'a [] []'。 4D看起來像:'a [] [] [] []'。您必須將'label_know_int_array [3]'切換到'label_know_int_array [0]'以'distance'進行排序。 – Teemu 2012-03-14 08:15:03

回答

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 
    } 
}); 

使用這種回調,你可以實現你的自定義排序功能

+0

檢查此鏈接http://solutoire.com/2007/05/02/sorting-javascript-arrays/ – Nemoy 2012-03-14 08:14:33

相關問題