【问题标题】:Javascript. Sorting array of objects by property x [duplicate]Javascript。按属性x对对象数组进行排序[重复]
【发布时间】:2017-02-22 00:38:58
【问题描述】:

我想按 y 值逐一绘制对象,因此“更近”的对象不会被绘制在 y 值较低的对象后面。我有这样的数组:

 List.list = [
 'idofobject' : {
  x: 20,
  y: 28
 },
 'otheridofobject' : {
  x: 20,
  y: 23
 },

];

如何按对象 y 值对其进行排序?我试图像普通的对象数组一样对其进行排序,但在这种情况下,我在属性之前有对象的 id,所以这是不可能的。我如何在不删除对象 ID 的情况下做到这一点?

【问题讨论】:

  • 您的 List.list 不正确,但这是您想要的答案:*.com/questions/1129216/…
  • 数组不能有键。您的列表存在语法错误。
  • 嗯,但效果很好。我只是无法对其进行排序:/
  • 如果我将 [] 更改为 {},我可以对其进行排序吗?

标签: javascript arrays sorting object


【解决方案1】:

一行

list.sort((obj1, obj2) => obj1.y - obj2.y);

【讨论】:

    【解决方案2】:

    您可以像这样使用Array.Prototype.sort 函数:

    List.list.sort(function(a, b) {
      return a.y - b.y;
    });
    

    这将使用自定义函数进行排序。

    如果您需要更多信息,请查看the documentation

    【讨论】:

      【解决方案3】:

      如果需要下划线可以使用

      http://underscorejs.org/#sortBy

      【讨论】:

      • 仅链接的答案没有什么价值。根据链接提供相关代码,仅使用链接来支持答案中的实际内容
      • 好的,我认为链接中的代码更清晰是不可能的。但我很欣赏你的评论。
      最近更新 更多