js根据n个字段进行排序
时间: 2023-11-30 08:02:52 浏览: 26
在JavaScript中,您可以使用`Array.sort()`方法和自定义比较函数来根据N个字段进行排序。您可以按照以下步骤编写代码:
1. 定义一个包含要排序对象的数组
2. 定义一个比较函数,该函数接收两个参数,分别代表要比较的对象
3. 在比较函数中,按照需要的字段进行排序,如果字段相同,则按照下一个字段进行排序。最后,返回一个数字,表示两个对象的相对顺序
4. 使用`Array.sort()`方法对数组进行排序,传递比较函数作为参数
以下是一个示例代码,演示如何根据三个字段进行排序:
```
var persons = [
{ name: "John", age: 25, city: "New York" },
{ name: "Peter", age: 30, city: "London" },
{ name: "Mary", age: 28, city: "Paris" },
{ name: "David", age: 25, city: "New York" }
];
function compare(a, b) {
if (a.city < b.city) {
return -1;
}
if (a.city > b.city) {
return 1;
}
if (a.age < b.age) {
return -1;
}
if (a.age > b.age) {
return 1;
}
if (a.name < b.name) {
return -1;
}
if (a.name > b.name) {
return 1;
}
return 0;
}
persons.sort(compare);
console.log(persons);
```
在这个例子中,我们定义了一个名为 `persons` 的数组,其中包含四个对象。每个对象都有三个属性:`name`,`age`和`city`。然后,我们定义了一个名为 `compare` 的自定义函数,该函数按照 `city`,`age` 和 `name` 字段的顺序进行排序。最后,我们使用 `persons.sort(compare)` 方法对 `persons` 数组进行排序,并使用 `console.log()` 函数输出排序后的数组。
您可以根据需要修改比较函数以实现不同的排序需求。