javascript按内部数据排序数组

时间:2013-07-10 10:46:46

标签: javascript arrays sorting

我需要通过他的内部第一个元素数据对数组进行排序。 我的数组看起来像那样

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

排序后,我需要它:

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

0,5,6假设订购细胞并且他们拥有的数据是无关紧要的。 感谢。

3 个答案:

答案 0 :(得分:1)

jsfiddle Link

var arr = [[0,"lol"],[6,"yo"],[5,"comon"]];
arr.sort(function(a, b) {
   return a[0] - b[0];
});

答案 1 :(得分:1)

你可以试试这样的...... Live Demo

我做了一些更改......

  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();
  3. <强> ============================================ ===============

    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;
        }
    });
    

答案 2 :(得分: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;
    }
});