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