(请原谅任何错误 - 这是我的第一篇文章,我对 Javascript 也比较陌生)
我正在尝试按 Javascript 中的特定属性值对对象数组进行排序。我有几个对象如下:
var Obj1 = {firstName: "John", lastName: "Doe", age: 46};
var Obj2 = {firstName: "Paul", lastName: "Smith", age: 22};
var Obj3 = {firstName: "Trent", lastName: "Johnson", age: 81};
我已将它们保存到一个数组中以便于访问:
var Arr = [Obj1, Obj2, Obj3];
我希望按年龄对数组中的这些对象进行排序,给出:
Arr = [Obj2, Obj1, Obj3];
同时仍然保持每个对象的完整性(即 Obj1 仍然包含 John、Doe 和 46)。
根据我的研究,我还没有看到有人以简单的方式解决这种情况。
感谢您能给我的任何指导!
最佳答案
您可以通过数组方法 .sort()
使用自定义回调。
Arr.sort(function(a, b) {
return a.age - b.age;
});
MDN reference page在 .sort() 上。
<小时/>而且,这是一个工作片段:
var Obj1 = {firstName: "John", lastName: "Doe", age: 46};
var Obj2 = {firstName: "Paul", lastName: "Smith", age: 22};
var Obj3 = {firstName: "Trent", lastName: "Johnson", age: 81};
var Arr = [Obj1, Obj2, Obj3];
Arr.sort(function(a, b) {
return a.age - b.age;
});
document.write(JSON.stringify(Arr));
关于Javascript 对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993262/