📜  javascript 在对象数组中排序 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:32.209000             🧑  作者: Mango

JavaScript在对象数组中排序

当在JavaScript中操作对象数组时,我们可能需要根据某些属性对数组进行排序。这可以使用内置的sort()方法来实现。sort()方法接受一个比较函数作为参数,该函数定义了排序算法并返回比较结果。

const arr = [
  { name: "John", age: 20 },
  { name: "Mary", age: 25 },
  { name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
  if (a.age < b.age) {
    return -1;
  }
  if (a.age > b.age) {
    return 1;
  }
  return 0;
});
console.log(arr);

以上代码将根据对象中的age属性按升序排序。

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

const arr = [
  { name: "John", age: 20 },
  { name: "Mary", age: 25 },
  { name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
  if (a.name < b.name) {
    return -1;
  }
  if (a.name > b.name) {
    return 1;
  }
  return 0;
});
console.log(arr);

以上代码将根据对象中的name属性按升序排序。

我们也可以根据多个属性进行排序。在比较函数中,我们可以按照优先顺序比较多个属性。

const arr = [
  { name: "John", age: 20 },
  { name: "Mary", age: 25 },
  { name: "Peter", age: 18 }
];
arr.sort(function(a, b) {
  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;
});
console.log(arr);

以上代码将根据年龄升序排序,如果年龄相同,则根据姓名升序排序。

总的来说,使用sort()方法按对象数组中的属性排序是一项常见任务,可以根据需要使用比较函数轻松地实现。