簡體   English   中英

如何將排序值的索引鍵存儲在數組中?

[英]How to store the index key of the sorting value in an array?

我試圖按制表符分隔的數據的最后一個值對數組進行排序。 我的數據是這樣的

AEDAG       6   5   6 
AEDSG       8   5   3
AEEAP       10  5   12
AEEKP       77  5   2
AELKVT      5   6   12

我嘗試按最后一列(6,3,12,2,12)對數據進行排序預期的輸出是

AELKVT      5   6   12
AEEAP       10  5   12
AEDAG       6   5   6 
AEDSG       8   5   3
AEEKP       77  5   2

我嘗試了以下腳本

var array = ["AEDAG     6   5   6","AEDSG       8   5   3","AEEAP       10  5   12","AEEKP      77  5   2","AELKVT      5   6   12"];
var index = [];
var data = [];
for(var i = 0; i < array.length; i++)
{
    var ech_line = array[i].split(/\t+/);
    index.push(i);
    data.push(ech_line[3]);
}

var sorted_index = [];

data.sort(function(a,b)
{ 
    var xac = b-a; 
    sorted_index.push(data.indexOf(xac)); //Here i push the value of sorted data.
    return xac;
});


var modified_data = [];
for(var i = 0; i < sorted_index.length; i++)
{
    modified_data.push(sorted_index[i]);

}

我的錯是什么 在我的腳本中。 我該怎么做?

這是您的代碼: 如果需要進一步說明其工作原理,請告訴我

 var array = ["AEDAG\\t6\\t5\\t6", "AEDSG\\t8\\t5\\t3", "AEEAP\\t10\\t5\\t12", "AEEKP\\t77\\t5\\t2", "AELKVT\\t5\\t6\\t12"]; array.sort(function(a, b) { return b.split(/\\t+/)[3] - a.split(/\\t+/)[3] }); alert(JSON.stringify(array)) 

假設制表符使用分隔的值,我建議稍微改變一下方法:

    var array = ["AEDAG 6   5   6","AEDSG   8   5   3","AEEAP   10  5   12","AEEKP  77  5   2","AELKVT  5   6   12"];
    var data = [];
    for(var i = 0; i < array.length; i++)
    {
         var ech_line = array[i].split(/\t+/);
         data.push(ech_line); //Each data row is the tab separated values splited array
    }

    var data_sorted = data.sort(function(a,b)
    { 
        if(b[3]/1 > a[3]/1) //Define a custom comparision for sorting data
            return 1;
        else 
            return -1;

        return 0;
    });

var data_formated = data_sorted.map(function(item){
    return item[0]+"\t\t"+item[1]+"\t"+item[2]+"\t"+item[3];
});
    alert(data_formated); //Print the desired result.

我做了一個jsFiddle看到它的工作。 也許您需要某種格式,但是您擁有所需的所有信息並進行了排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM