Javascript 对对象数组进行排序

标签 javascript arrays sorting object

(请原谅任何错误 - 这是我的第一篇文章,我对 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/

相关文章:

Python数据结构按字母顺序排序列表

javascript - this.state.todos.map 不是一个函数,React.js

Javascript - 将电子邮件验证功能添加到现有验证功能

arrays - 确定一个值是否在排序数组中的 O 时间是多少?

javascript - Jquery/JavaScript : Sort a datatable on column that has <a>

ruby - 按另一个散列中的值对散​​列进行排序

javascript - Three.js 错误 --> THREE.Scene 不是构造函数

javascript - javascript 如何用数字替换字符

python - 将 : np. 索引数组转换为相应字典条目的 np.array

PHP 使用 DOM 解析器获取自定义属性值