如何在一个字段中对jquery中的多维数组进行排序?

我在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] (价格)的值来排序数组,而不是将每个价格与他的标识符(他的[x][2] )分开。

我如何能?

您可以使用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