添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

javascript sort array of objects by key boolean

如果您想要按照一个布尔类型的属性对包含多个对象的数组进行排序,您可以使用Array.sort()方法和一个比较函数来实现。

比较函数将接收两个参数,这些参数分别是要比较的对象。您需要在函数内部使用逻辑运算符来比较对象的布尔属性,并返回一个数字值来指示它们的顺序。

这里是一个示例代码,假设您想要按照一个名为“isAvailable”的布尔属性对包含多个商品对象的数组进行排序:

const products = [
  {name: 'Product 1', isAvailable: false},
  {name: 'Product 2', isAvailable: true},
  {name: 'Product 3', isAvailable: false},
  {name: 'Product 4', isAvailable: true},
products.sort((a, b) => (a.isAvailable === b.isAvailable) ? 0 : a.isAvailable ? -1 : 1);
console.log(products);

在上述代码中,我们使用了一个箭头函数作为比较函数。它将首先检查两个对象的isAvailable属性是否相等,如果相等则返回0,否则将比较它们的布尔值并返回一个数字来指示它们的顺序。返回负数将a排在b前面,返回正数则b排在a前面。

如果isAvailable为true,则将返回负数,这将使元素a排在元素b前面。如果isAvailable为false,则将返回正数,这将使元素b排在元素a前面。

在上面的示例中,我们对产品数组进行了按isAvailable属性排序,按照布尔值从大到小的顺序进行排序。最终,排序后的产品数组将打印到控制台中。

希望这个例子能够帮助您解决问题。

  •