📜  javascript 排序对象 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:43.207000             🧑  作者: Mango

JavaScript 排序对象

在 JavaScript 中,我们可以使用内置的 sort() 方法对数组进行排序,但是数组中有时候可能包含多个对象,而我们需要根据对象的某个属性进行排序。

排序方法

我们可以使用 sort() 方法结合比较函数来对包含对象的数组进行排序。比较函数会接收两个参数,我们需要根据这两个参数的某个属性进行比较,然后返回比较结果。如果第一个参数比第二个参数小,则返回负数,如果相等则返回 0,如果大于则返回正数。

下面是一个简单的比较函数例子:

function compare(a, b) {
  if (a.age < b.age) {
    return -1;
  }
  if (a.age > b.age) {
    return 1;
  }
  return 0;
}

这个比较函数会根据对象的 age 属性进行比较。

排序对象数组

现在我们可以使用 sort() 方法和比较函数来对包含对象的数组进行排序了。假设我们有一个包含多个对象的数组 people,我们可以使用以下代码对它们按照 age 属性进行升序排序:

people.sort(compare);

我们也可以根据其他属性进行排序,只需要修改比较函数中的比较条件即可。

完整代码

下面是一个完整的例子代码,它会创建一个包含多个对象的数组 people,然后按照 age 属性进行排序,最后输出排序后的数组对象:

const people = [
  { name: 'John', age: 25 },
  { name: 'Mary', age: 20 },
  { name: 'Bob', age: 30 },
];

function compare(a, b) {
  if (a.age < b.age) {
    return -1;
  }
  if (a.age > b.age) {
    return 1;
  }
  return 0;
}

people.sort(compare);

console.log(people);

输出结果应该是:

[
  { name: 'Mary', age: 20 },
  { name: 'John', age: 25 },
  { name: 'Bob', age: 30 }
]
总结

使用比较函数可以方便地对包含对象的数组进行排序。我们只需要根据对象的某个属性写出比较函数,然后通过 sort() 方法将数组进行排序即可。