如何根据项目的某些属性高效排序数组

时间:2014-06-06 16:14:16

标签: javascript arrays sorting optimization

Imagin我有一个数组

  

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

现在,我想对他们的名字进行排序。那么,输出是这样的:

  

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

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

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

任何人都可以更有效地做到这一点吗?另外,请注意我使用的是JavaScript,因此我仅限于javaScript的库和内置功能,如果我们使用Java或其他类似的语言,我可能会更容易。

1 个答案:

答案 0 :(得分:5)

您可以使用数组的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