用js语言排序两个条件
时间: 2024-04-30 18:20:31 浏览: 13
可以使用数组的 `sort()` 方法来排序两个条件,以下是一个示例代码:
```javascript
// 定义一个包含两个条件的数组
const data = [
{ name: 'Tom', age: 20 },
{ name: 'Jack', age: 25 },
{ name: 'Lucy', age: 18 },
{ name: 'Mike', age: 22 },
];
// 使用sort()方法排序,先按照年龄升序排列,年龄相同则按照姓名升序排列
data.sort((a, b) => {
if (a.age === b.age) {
return a.name.localeCompare(b.name);
}
return a.age - b.age;
});
console.log(data);
// 输出:[
// { name: 'Lucy', age: 18 },
// { name: 'Tom', age: 20 },
// { name: 'Mike', age: 22 },
// { name: 'Jack', age: 25 }
// ]
```
在 `sort()` 方法中传入一个比较函数,比较函数返回值为负数则表示 `a` 在 `b` 前面,返回值为正数则表示 `b` 在 `a` 前面,返回值为 `0` 则表示 `a` 和 `b` 相等。在比较年龄时,我们可以使用减法来比较,若 `a.age` 大于 `b.age` 则返回正数,否则返回负数。在比较姓名时,使用 `localeCompare()` 方法按照字典序比较。