按特定键值对对象数组进行排序 Java脚本

TJB*_*man 3 javascript arrays sorting

我在从一个正在从事的小型个人项目中排序特定对象数组时遇到问题。我以前从来没有遇到过使用Array.prototype.sort()函数的麻烦,但是我想知道有关多个对象键的某些问题是否正在影响它...

盯着它看的时间比我想承认的要长,现在只需要寻求帮助即可。:|

目标:相对于每个对象的特定key.value按字母顺序对对象数组进行排序。

提前致谢!

JS小提琴在这里

排序功能示例-(尽管如此,我还是建议您查看完整的小提琴)。

var sorted = array.sort((a, b) => { return a.key > b.key; });
Run Code Online (Sandbox Code Playgroud)

解决了

@Ryan帮助我发现返回布尔值是不够的,您需要显式返回正数或负数或0。

@Brk向我展示了一种很棒的快速方法。

这篇文章有非常详细的描述。 用JavaScript排序:返回布尔值是否足以用作比较函数?

谢谢大家!对不起,重复帖子:|

brk*_*brk 5

您可以使用localeCompare方法,该方法将返回一个数字,该数字指示参考字符串是按排序顺序位于给定字符串之前还是之后还是与给定字符串相同。

var sorted = array.sort((a, b) => {
  return a.subreddit.localeCompare(b.subreddit)
});
Run Code Online (Sandbox Code Playgroud)

演示