Javascript按数组内的元素排序

时间:2016-08-22 05:23:53

标签: javascript arrays sorting

我需要按照数组的一列对复杂的数组顺序进行排序。

例如,此数组可能看起来像

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来说明我的想法。

1 个答案:

答案 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' ] ]