如何在JavaScript中对此数组进行排序?

pri*_*ank 2 javascript arrays sorting object

我该如何排序这个数组?

[
  {id : 1, start : 60, end : 120},
  {id : 2, start : 100, end : 240},
  {id : 3, start : 700, end : 720}
]
Run Code Online (Sandbox Code Playgroud)

更新:所以如果我的数组看起来像这样,我可以根据起始值对其进行排序吗?

[{
  1:{start : 60, end : 120},
  2:{start : 100, end : 240},
  3:{start : 700, end : 720}
}]
Run Code Online (Sandbox Code Playgroud)

Seb*_*Seb 17

你有什么是一系列的对象.您必须指定要对其进行排序的方式.

无论如何,你可以使用这个sort方法:

var data = [{id : 1, start : 60, end : 120}, {id : 2, start : 100, end : 240},{id : 3, start : 700, end : 720}];

function sortByStart(a, b){
  return a.start - b.start;
}

data.sort(sortByStart);
Run Code Online (Sandbox Code Playgroud)

  • 您甚至不需要命名比较函数.如果您不需要在其他地方进行比较,则可以将其用作匿名函数.data.sort(function(a,b){return a.id -b.id;}; (11认同)
  • 是的,绝对,但我总是试图避免匿名函数,因为它们使代码更难阅读 - 你知道,程序员花更多时间阅读代码而不是编写代码:) (2认同)