【问题标题】:How to sort an Array of Array (2D Array) by first sub-array value如何按第一个子数组值对数组(二维数组)进行排序
【发布时间】:2014-04-01 16:54:56
【问题描述】:

我需要订购一个由子数组组成的数组。
数组必须按每个子数组元素的第一个元素排序
示例:

myArray = [ [1,0],[3,10],[2,5],[4,0] ]

所需输出:[ [1,0],[2,5],[3,10],[4,0] ]

如何在 Javascript 中实现这一点?
谢谢,Nk

【问题讨论】:

标签: javascript arrays sorting


【解决方案1】:
var myArray = [ [1,0],[3,10],[2,5],[4,0] ];    
myArray.sort(); // [[1, 0], [2, 5], [3, 10], [4, 0]]

DEMO
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

【讨论】:

    【解决方案2】:

    使用sort

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

    【讨论】:

    • 请注意,如果操作数不是整数值,这将产生意外的排序结果。
    【解决方案3】:

    这是你的结果

    myArray.sort(function(x, y){ return x[0] > y[0] });
    

    希望使用此代码,它会起作用

    Demo for this code

    【讨论】:

    • 比较函数应该返回 -1(负)、0 或 1(正)。
    • 您可以在控制台中声明一个数组。 myArray = [ [1,0],[3,10],[2,5],[4,0] ],然后编写此代码,您将获得排序后的数组。 myArray.sort(function(x, y){ return x[0] > y[0] });
    • 布尔返回值可能会导致意外的排序结果。
    • 我将 jsfiddle 中的链接添加为“此代码的演示”,检查一次
    • 不,它的 javascript 代码可以在任何 javascript 编译器中运行,您可以检查任何一个在线编译器并给我您的输出,如果您遇到任何问题,我希望它可以在任何在线编译器
    猜你喜欢
    • 2011-10-25
    • 2015-08-23
    • 1970-01-01
    • 2012-04-03
    • 2013-08-17
    • 2018-06-02
    • 2021-04-23
    • 2021-11-01
    相关资源
    最近更新 更多