【问题标题】:sort a list of lists by how many values each list has [duplicate]按每个列表有多少值对列表列表进行排序[重复]
【发布时间】:2021-02-09 09:13:23
【问题描述】:

好的,这可能有一个答案,但我不知道如何找到它。 我有一个列表。

var listOLists = [['q','w','e'],['a'],['z','x']];

有没有办法按列表长度排序,所以我得到一个结果

output.table(listOLists.specialLenghtsort());
    'a'
    'z','x'
    'q','w','e'

【问题讨论】:

  • listOLists.sort((a, b) => a.length - b.length).

标签: javascript arrays sorting


【解决方案1】:

是的,您可以使用带有自定义比较功能的数组排序方法。

listOLists.sort((a, b) => a.length > b.length ? 1 : -1)

如果您希望保留相同长度项目的顺序,您需要执行以下操作,

listOLists.sort((a, b) => a.length - b.length)

感谢 Patrick 指出这一点。作为参考,您可以关注此this 链接。

【讨论】:

  • 这不是一个稳定的算法。这可能会交换任何长度相等的元素,而不是保留它们的初始相对顺序。
  • 我试过了,它实际上是保留了相等长度的相对顺序。
  • @Patrick True,但这个问题似乎不需要稳定的算法。
  • 在 Firefox 中它实际上是保留顺序。但是在我使用 chrome 之后,它会破坏顺序。有趣的。感谢@PatrickRoberts 指出这一点。
猜你喜欢
  • 2016-12-11
  • 1970-01-01
  • 2014-05-28
  • 2015-11-14
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 2019-01-17
  • 2022-01-04
相关资源
最近更新 更多