タグとカウントのリストを含む配列があります。
tags_array[0] = tags;
tags_array[1] = tags_count;
上位のいくつかのタグを選択できるように、カウントに基づいて配列を並べ替える必要があります。
タグとカウントのリストを含む配列があります。
tags_array[0] = tags;
tags_array[1] = tags_count;
上位のいくつかのタグを選択できるように、カウントに基づいて配列を並べ替える必要があります。
並べ替えの比較を保存しながら、1 つを並べ替えます。次に、それらの結果を使用して他のものを並べ替えます。
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 と 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});
このようにデータを書き換えるのではなく、最初からこのようにデータを構造化することも可能であることに注意してください。同様に、より良い構造を使用してデータを保存することもできますが、これは機能します。