Sas*_*vus 3 arrays sorting 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();
Run Code Online (Sandbox Code Playgroud)
元素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];
});
Run Code Online (Sandbox Code Playgroud)
...假设[1]子数组中的条目实际上是数字.
见下面的实例.
旁注#1:请注意,数组索引的起始位置0,因此引用undefined的数组在第一个位置具有(而不是子数组).在执行上述操作之前,您可能需要解决此问题,可能需要执行以下操作.
旁注#2:在JavaScript中,几乎没有任何理由可以编写new Array().相反,只需使用数组文字:[].例如,您引用的代码可能是:
var myArray = [
[],
[],
[],
[],
[]
];
Run Code Online (Sandbox Code Playgroud)
...假设您修复了上述错误.
// [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]);
}
Run Code Online (Sandbox Code Playgroud)
输出:
0: 2 - 7.5 1: 3 - 8.99 2: 4 - 12.25 3: 5 - 13.72 4: 1 - 14.95