Avatar ·

JavaScript中按属性值对对象数组进行排序

大家好!我是JavaScript新手,在排序对象数组时遇到了问题。我有一个用户数组,每个对象包含姓名和年龄: ```javascript const users = [ { name: '安娜', age: 25 }, { name: '伊万', age: 30 }, { name: '玛丽亚', age: 22 }, { name: '彼得', age: 28 } ]; ``` 我需要按年龄(从小到大)排序这个数组,然后按姓名字母顺序排序。我尝试直接使用`sort()`方法,但它没有按预期工作——它按字符串排序,对象没有正确比较。 我读到`sort()`接受一个比较函数,但不知道如何为对象编写它。我尝试了类似`users.sort((a, b) => a.age - b.age)`的东西,但结果很奇怪——有时排序,有时不排序。我还想先按年龄排序,如果年龄相同则按姓名排序。如何正确做到这一点? 请告诉我JavaScript中对象排序是如何工作的,以及如何编写正确的排序函数。