📅  最后修改于: 2023-12-03 15:37:21.415000             🧑  作者: Mango
在 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
,则 a
和 b
相等。
我们比较 b.isStudent - a.isStudent
的值,如果 b.isStudent
为 true
而 a.isStudent
为 false
,则返回正数,a
排在 b
后面;如果 b.isStudent
为 false
而 a.isStudent
为 true
,则返回负数,a
排在 b
前面;如果两者都为 true
或都为 false
,则返回 0
,两者相等。
排序后的数组为:
[
{ name: "Alice", isStudent: true },
{ name: "David", isStudent: true },
{ name: "Bob", isStudent: false },
{ name: "Charlie", isStudent: false }
]
在 JavaScript 中,使用布尔属性对对象数组排序可以使用 sort()
函数和比较函数来实现。我们可以比较两个对象的属性值,根据 true
或 false
来返回一个数字用于排序。