我需要按照数组的一列对复杂的数组顺序进行排序。
例如,此数组可能看起来像
array = [["Banana","Chapter3"], ["Orange","Chapter2"], ["Apple","Chapter1"]];
我希望它按Chapter
排序,因此结果将是
array = ["Apple","Chapter1"],["Orange","Chapter2"],["Banana","Chapter3"]]
但如果我array.sort
,它将成为
[["Apple","Chapter1"],["Banana","Chapter3"],["Orange","Chapter2"]]
似乎按第一个元素的ascii代码排序。如何按数组中的特定元素排序?
我还创建了一个JSfiddle来说明我的想法。
答案 0 :(得分:0)
您需要将比较器传递给sort
:
var array = [["Banana","Chapter3"], ["Orange","Chapter2"], ["Apple","Chapter1"]];
var sorted = array.sort(function (a, b) {
if (a[1] > b[1]) {
return 1;
} else if (a[1] < b[1]) {
return -1;
} else {
return 0;
}
});
console.log(sorted);
// [ [ 'Apple', 'Chapter1' ],
// [ 'Orange', 'Chapter2' ],
// [ 'Banana', 'Chapter3' ] ]