如何在一个字段中对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