js 对象列表按某属性排序
时间: 2023-08-02 12:35:13 浏览: 45
你可以使用JavaScript中的sort()方法对对象列表进行排序,例如按照某个属性值进行升序排序:
```javascript
const list = [
{ name: 'Bob', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'John', age: 40 }
];
list.sort((a, b) => a.age - b.age);
console.log(list);
// Output: [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'John', age: 40 }]
```
如果要进行降序排序,则可以使用以下代码:
```javascript
list.sort((a, b) => b.age - a.age);
```
在上述代码中,sort()方法接受一个比较函数作为参数,该函数定义了如何比较两个对象。在这个例子中,比较函数按照age属性值进行比较。
相关问题
js 对象列表按某一属性大小排序
可以使用JavaScript中的sort()方法对对象列表按某一属性大小进行排序。假设我们有一个对象列表,每个对象包含name和age属性,现在要按照age属性从小到大排序,可以这样实现:
```javascript
var list = [
{ name: 'Tom', age: 20 },
{ name: 'Jerry', age: 18 },
{ name: 'Mike', age: 25 },
{ name: 'John', age: 22 },
{ name: 'Lucy', age: 19 }
];
list.sort(function(a, b) {
return a.age - b.age;
});
console.log(list);
```
在上述代码中,我们使用sort()方法对list进行排序,其中传入一个比较函数,该函数接受两个参数a和b,分别表示待排序的两个对象。比较函数需要返回一个数值,如果a应该排在b的前面,则返回负数;如果a应该排在b的后面,则返回正数;如果a和b相等,则返回0。在本例中,我们根据age属性从小到大排序,因此比较函数返回a.age - b.age。
排序后,我们可以通过console.log()方法输出排序后的列表。
需要注意的是,sort()方法会改变原数组,因此如果不想改变原数组,需要先对原数组进行复制再进行排序。另外,如果需要按照其他属性或者其他排序方式进行排序,只需要修改比较函数即可。
js对象数组按某一属性排序
好的,针对您的问题,可以使用数组的 sort() 方法配合自定义比较函数来进行排序。假设我们有如下的 js 对象数组:
```
let people = [
{ name: 'John', age: 32 },
{ name: 'Jane', age: 25 },
{ name: 'Bob', age: 42 }
];
```
如果我们想按照年龄从小到大排序,可以这样实现:
```
people.sort(function(a, b) {
return a.age - b.age;
});
```
如果我们想按照姓名字母顺序排序,可以这样实现:
```
people.sort(function(a, b) {
return a.name.localeCompare(b.name);
});
```
希望我的回答对您有所帮助。