3

私はjqueryにこの配列を持っています:

var myArray = new Array();
myArray[1] = new Array();
myArray[2] = new Array();
myArray[3] = new Array();
myArray[4] = new Array();
myArray[5] = new Array();

要素myArray[x][1](x は 1 から 5 まで) には数値 (価格) が含まれ、要素にはmyArray[x][2]別の数値 (識別子) が含まれます。myArray[x][1]すべての価格を彼の識別子 (his ) から分離せずに、(価格)の値で配列を注文する必要があります[x][2]

どうすれば?

4

1 に答える 1

7

そのために使用できますArray#sort

myArray.sort(function(a, b) {
    return a[1] - b[1];
});

[1]...サブ配列のエントリが実際には数値であると仮定します。

以下の実際の例を参照してください。


補足事項 #1: 配列インデックスは から始まることに注意してください。その0ため、引用された配列はundefined(サブ配列ではなく) 最初の位置にあります。上記を実行する前に、おそらく以下を実行して、それを修正する必要があります。


補足 #2: JavaScript では、 を記述する理由はほとんどありませんnew Array()。代わりに、配列リテラルを使用してください: []. たとえば、引用されたコードは次のようになります。

var myArray = [
    [],
    [],
    [],
    [],
    []
];

...上記のエラーを修正すると仮定します。


実例| ライブ ソース:

// [0] is the id, [1] is the price
var myArray = [
    [1, 14.95],
    [2, 7.50],
    [3, 8.99],
    [4, 12.25],
    [5, 13.72]
];

myArray.sort(function(a, b) {
    return a[1] - b[1];
});

var index, entry;
for (index = 0; index < myArray.length; ++index) {
    entry = myArray[index];
    console.log(index + ": " + entry[0] + " - " + entry[1]);
}

出力:

0:2~7.5
1: 3 - 8.99
2: 4 - 12.25
3: 5 - 13.72
4: 1 - 14.95
于 2013-09-24T09:49:00.093 に答える