📌  相关文章
📜  在 JavaScript 中使用布尔属性对对象数组进行排序(1)

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

在 JavaScript 中使用布尔属性对对象数组进行排序

在 JavaScript 中,我们可以使用数组的 sort() 函数对对象数组进行排序。如果我们想要根据对象属性的布尔值排序,可以使用以下方法。

实现方法

假设有以下对象数组:

const arr = [
  { name: "Alice", isStudent: true },
  { name: "Bob", isStudent: false },
  { name: "Charlie", isStudent: false },
  { name: "David", isStudent: true }
];

我们想要根据 isStudent 属性对数组进行排序,先按照 true 值排在前面,再按照 false 值排在后面。我们可以使用以下代码:

arr.sort((a, b) => b.isStudent - a.isStudent);

这里我们使用了比较函数作为 sort() 函数的参数。比较函数需要返回一个数字值,表示排序的顺序。如果返回负数,则 a 排在 b 的前面;如果返回正数,则 a 排在 b 的后面;如果返回 0,则 ab 相等。

我们比较 b.isStudent - a.isStudent 的值,如果 b.isStudenttruea.isStudentfalse,则返回正数,a 排在 b 后面;如果 b.isStudentfalsea.isStudenttrue,则返回负数,a 排在 b 前面;如果两者都为 true 或都为 false,则返回 0,两者相等。

排序后的数组为:

[
  { name: "Alice", isStudent: true },
  { name: "David", isStudent: true },
  { name: "Bob", isStudent: false },
  { name: "Charlie", isStudent: false }
]
总结

在 JavaScript 中,使用布尔属性对对象数组排序可以使用 sort() 函数和比较函数来实现。我们可以比较两个对象的属性值,根据 truefalse 来返回一个数字用于排序。