按属性对JavaScript对象进行排序

时间:2019-01-29 22:53:53

标签: javascript json arrow-functions

我正尝试通过其“ body”属性对评论对象数组进行排序。

我正在尝试运行以下命令(console.log(comment)成功显示了数组),但是当我对它进行排序时,即使将其定义为sortedArray之后,我也只能得到相同的数组。变量。

我已经看到了一些类似的问题,但是我尝试实现的箭头函数语法却不够。

下面是我的代码:

function sortComments() {
  $("#sort_comments").on("click", function(e) {
    e.preventDefault();
    var id = this.dataset.linkid
    fetch(`/links/${id}/comments.json`)
      .then(r => r.json())
      .then(comments =>
        comments.sort(function(a, b) {
          return a.body - b.body;
        })
      );
  });
}

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这里可能发生的是body属性是字符串而不是数字,因此减法的结果返回NaN,如果是{{1} }不会改变。

为了比较2个不同的字符串,您可能要使用Array,如下所示:

localeCompare