如何高效地根据某个项目属性对数组进行排序

4

假设我有一个数组

var arr = [ {name: 'peter', age: 50}, {name: 'alice', age: 50}, {name: 'zebra', age: 50}, ];

现在,我希望按照它们的名字进行排序。 所以,输出应该是这样的:

[{name: 'alice', age: 50}, {name: 'peter', age: 50},{name: 'zebra', age: 50}]

天真的解决方案是创建一个名称数组并对其进行排序,然后循环遍历此已排序的名称,在arr中找到相应的项目并插入新数组。

我知道这不是最优算法,也不是最干净的写法。

有人能更有效地做到这一点吗? 另外,请注意,我正在使用JavaScript,因此我受限于javaScript的库和内置功能,如果我们使用Java或某种类似语言,则可能会更容易。


这几乎与 Mozilla Array.prototype.sort() 文档 中的一个示例完全相同。 - Paul Roub
1个回答

5

这个也是一个很好的解决方案。我不知道我可以这样做:P谢谢Dalorzo :) - Cute_Ninja
3
使用return a.localeCompare(b);进行文本排序会更好,因为它可以更好地处理相同的字符串,并且可以处理排序中的语言问题。 - jfriend00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接