javascript - 如何根据项目的某些属性有效地对数组进行排序

标签 javascript arrays sorting optimization

<分区>

假设我有一个数组

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 或其他类似语言,我想这可能会更容易。

最佳答案

您可以使用 Array 的 sort 函数按 name 实现排序,例如:

var arr = [ {name: 'peter', age: 50}, {name: 'alice', age: 50}, {name: 'zebra', age: 50}, ];
arr.sort(function(a,b){ return a.name>b.name; } );

您可以在这里阅读更多相关信息:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

关于javascript - 如何根据项目的某些属性有效地对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24086365/

相关文章:

javascript - 通过 $sceDelegate 提供程序打开重定向预防

python - 在 Python 中将数组与其自身网格化 n 次

C - 从特定的单行输入填充数组

jquery - JsTree:如何对顶部文件夹的 jstree 节点进行排序

javascript - 如何破译JavaScript中的sort方法?

javascript - 需要一些关于正则表达式验证的指示

javascript - Typescript:使用 .map 时如何保留长度信息

sorting - Pandas 分组按降序排序

javascript - 基于文本字段、Javascript 从下拉列表中删除和添加字段

javascript - 如何在 React/Framer 中查找数组中的特定项?