js sort排序多个属性
时间: 2023-06-24 15:06:02 浏览: 49
在 JavaScript 中,可以使用 Array.sort() 方法来排序数组。如果要按多个属性排序,可以使用比较函数来实现。
比较函数需要接受两个参数,这两个参数是要进行比较的两个元素。如果第一个元素应该排在第二个元素之前,则返回一个负数;如果第一个元素应该排在第二个元素之后,则返回一个正数;如果两个元素相等,则返回 0。
下面是一个示例代码,用于按照多个属性对数组进行排序:
```javascript
const arr = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 },
{ name: 'David', age: 25 }
];
arr.sort((a, b) => {
if (a.age < b.age) {
return -1; // a应该排在b之前
} else if (a.age > b.age) {
return 1; // a应该排在b之后
} else {
// 如果age相等,则按name排序
if (a.name < b.name) {
return -1;
} else if (a.name > b.name) {
return 1;
} else {
return 0;
}
}
});
console.log(arr);
```
输出结果为:
```javascript
[
{ name: 'Charlie', age: 20 },
{ name: 'Alice', age: 25 },
{ name: 'David', age: 25 },
{ name: 'Bob', age: 30 }
]
```
在上面的示例代码中,我们首先按照 age 属性进行排序,如果 age 相等,则按照 name 属性排序。可以根据具体的需求,改变比较函数的实现,以实现不同的排序方式。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)