1

次のような構造の 2D 配列があります。

image_arrary[[image1.jpg, 1][image2.jpg, 2][image3.jpg, 3]]

内側の配列要素は image_name と image_order です

ユーザーはボタンをクリックして画像の順序を変更できるため、クリックすると配列は次のようになります

image_arrary[[image1.jpg, 1][image2.jpg, 3][image3.jpg, 2]]

配列が image_order で順序付けられるように配列を再配置して、次のようにするにはどうすればよいですか?

image_arrary[[image1.jpg, 1][image3.jpg, 2][image2.jpg, 3]].

よろしくお願いします。

4

2 に答える 2

1

JavaScript の配列にはsort()、オプションのパラメーターを取ることができるメソッドがあります。sort()このパラメーターは、メソッドがどの配列要素が「大きい」かを判断するのに役立つカスタム比較コードを定義できる関数です。したがって、あなたの例では、次のようなことができます:

var inputArray = [
    ['image1.jpg', 1],
    ['image2.jpg', 3],
    ['image3.jpg', 2]
];

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

/* inputArray is now sorted /*

この例では、「比較関数」のパラメータabパラメータが「外部」配列の要素になります。配列の配列があるため、 の形式の配列になりaます。比較関数はこれらの 2 番目の要素をチェックし、 の 2 番目の要素が の 2 番目の要素より小さい場合に true を返します。これにより、メソッドは「外側」配列のどの「サブ配列」を最初に配置するかを決定できます。b['image1.jpg', 1]absort()

ここで動作する例を見ることができます。

于 2013-08-29T13:50:29.420 に答える