按特定键值排序对象数组使用Javascript

时间:2017-05-06 03:55:51

标签: javascript arrays sorting

我无法从我正在处理的小型个人项目中排序特定的对象数组。我以前从未遇到过使用Array.prototype.sort()函数的问题,但我想知道是否有关于多个对象键的事情正在影响它......

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

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

提前致谢!

JS Fiddle Here

排序功能示例 - (我建议查看完整的小提琴上下文)。

var sorted = array.sort((a, b) => { return a.key > b.key; });

解决

@Ryan帮我发现返回一个布尔值是不够的,你需要显式返回一个正数或负数,或者为0。

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

这篇文章有一个非常详细的描述。 Sorting in JavaScript: Shouldn't returning a boolean be enough for a comparison function?

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

1 个答案:

答案 0 :(得分:5)

您可以使用localeCompare方法,该方法将返回一个数字,指示引用字符串是在排序顺序之前还是之后出现,或者与排序顺序中的给定字符串相同。

var sorted = array.sort((a, b) => {
  return a.subreddit.localeCompare(b.subreddit)
});

DEMO