首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按布尔值、姓氏和姓名对javascript中的数组排序

在JavaScript中,可以使用数组的sort()方法对数组进行排序。sort()方法会原地修改数组,按照默认的字典顺序排序数组元素。

如果要按布尔值、姓氏和姓名对JavaScript中的数组排序,可以自定义排序函数。以下是一个示例:

代码语言:txt
复制
const people = [
  { name: "John Doe", surname: "Doe", isActive: true },
  { name: "Jane Smith", surname: "Smith", isActive: false },
  { name: "Alice Johnson", surname: "Johnson", isActive: true }
];

function comparePeople(a, b) {
  // 按布尔值排序,将isActive为true的排在前面
  if (a.isActive && !b.isActive) {
    return -1;
  }
  if (!a.isActive && b.isActive) {
    return 1;
  }
  
  // 按姓氏排序
  const surnameComparison = a.surname.localeCompare(b.surname);
  if (surnameComparison !== 0) {
    return surnameComparison;
  }
  
  // 如果姓氏相同,按姓名排序
  return a.name.localeCompare(b.name);
}

people.sort(comparePeople);

console.log(people);

在这个示例中,我们定义了一个comparePeople函数作为自定义的排序函数。首先,我们根据isActive属性来排序,将isActive为true的排在前面。然后,如果isActive属性相同,我们比较姓氏。如果姓氏不同,我们返回姓氏的比较结果;如果姓氏相同,我们再比较姓名。

对于上述示例,排序后的结果将是:

代码语言:txt
复制
[
  { name: "Alice Johnson", surname: "Johnson", isActive: true },
  { name: "John Doe", surname: "Doe", isActive: true },
  { name: "Jane Smith", surname: "Smith", isActive: false }
]

这个排序方法可以应用于任何包含namesurnameisActive属性的对象数组。根据实际情况,你可以自定义不同的排序规则。

关于腾讯云的相关产品和介绍链接地址,由于您要求不提及具体品牌商,我无法提供相关链接。但腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以在腾讯云官方网站上找到详细的产品和介绍信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券