我有一個包含標籤和計數列表的數組。排序2D javascript數組
tags_array[0] = tags;
tags_array[1] = tags_count;
我需要根據計數對數組進行排序,以便我可以挑選出前幾個標籤。
我有一個包含標籤和計數列表的數組。排序2D javascript數組
tags_array[0] = tags;
tags_array[1] = tags_count;
我需要根據計數對數組進行排序,以便我可以挑選出前幾個標籤。
排序一,同時存儲排序比較。然後使用這些結果對另一個進行排序:
var res = [];
tags_count.sort(function(a, b){ return res.push(a=a-b), a; });
tags.sort(function(){ return res.shift(); });
假設tags
和tags_count
是相同長度的2列,我會先建立對象的正確排列:
var array = [];
for (var i=0; i<tags_count.length; i++) {
array.push({tag:tags[i], count:tags_count[i]});
}
然後排序上的計數:
array.sort(function(a, b) {return a.count-b.count});
如果您需要然後讓你的陣列回來,你可以做
for (var i=0; i<array.length; i++) {
tags[i] = array[i].tag;
tags_count[i] = array[i].count;
}
假設標籤和tags_count都是長度相同的數組(問題的一部分不太清楚),下面是一種方法來實現這個技巧。
var tags_array = new Array();
for (var i = 0; i < tags.length; i++)
{
tags_array[i] = {};
tags_array[i].tagName = tags[i];
tags_array[i].tagCount = tags_count[i];
}
tags_array.sort(function(a,b){return b.tagCount-a.tagCount});
每個人都應該注意,有可能從一開始就組織數據以這種方式不是重寫它像這樣的,在這種情況下是優選的。同樣,可以使用更好的結構來保存數據,但這會起作用。