0

彼の内側の最初の要素 data で配列をソートする必要があります。私の配列はそのように見えます

arr = [[0,"lol"][6,"yo"][5,"comon"]]

ソート後、次のようにする必要があります。

[[0,"lol"][5,"comon"][6,"yo"]]

0 、 5 、 6 はセルを順序付けると仮定し、それらのデータは無関係です。ありがとう。

4

3 に答える 3

1

このコードを使用して、配列を並べ替えます..

var arr = [[0,"lol"],[6,"yo"],[5,"comon"]];

arr.sort(function(a, b) {
    if (a[0] == b[0]) {
        return 0;
    } else {
        return a[0] < b[0] ? -1 : 1;
    }
});
于 2013-07-10T11:09:44.087 に答える
1

jsfiddle リンク

var arr = [[0,"lol"],[6,"yo"],[5,"comon"]];
arr.sort(function(a, b) {
   return a[0] - b[0];
});
于 2013-07-10T10:49:25.500 に答える
1

このようなことを試すことができます... ライブデモ

私はいくつかの変更を加えました...

  1. 間違いを修正しました:
    // before that I'm checking arrays and not a values of it...
    (!isNaN(a) && !isNaN(b)) to (!isNaN(a[0]) && !isNaN(b[0]))
  2. 大文字と小文字を区別しない...
    aa = a[0].toString().toLowerCase(); bb = b[0].toString().toLowerCase();

================================================== =========

arr.sort(function (a, b) {
    var aa, bb;
    if (!isNaN(a[0]) && !isNaN(b[0])) {
        return a[0] - b[0];
    } else {
        aa = a[0].toString().toLowerCase();
        bb = b[0].toString().toLowerCase();
        return (aa == bb) ? 0 : (aa < bb) ? -1 : 1;
    }
});
于 2013-07-10T11:05:14.270 に答える