You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于不同嵌套结构、不同键的布尔属性统计增量计数?

优化布尔属性累加计数的实现方式

这里有几种更简洁的实现方式,能让代码更紧凑且易于维护:

方法1:利用数组收集布尔值并求和

把所有需要计数的布尔属性统一放到数组中,借助数组的reduce方法完成累加——因为布尔值在加法运算中会被自动转换为1(true)或0(false),所以可以直接简化求和逻辑:

const response = {
  address_details: {
    is_completed: true
  },
  contact_details: {
    home_details: {
      is_done_and_verified: true
    }
  }
}

const count = [
  response.address_details.is_completed,
  response.contact_details.home_details.is_done_and_verified
].reduce((total, boolVal) => total + boolVal, 0);

console.log(count); // 输出 2

方法2:处理可能存在的属性缺失场景

如果某些嵌套属性可能不存在(避免运行时报错),可以结合**可选链操作符(?.)和空值合并运算符(??)**做容错处理,默认将不存在的属性视为false:

const count = [
  response.address_details?.is_completed ?? false,
  response.contact_details?.home_details?.is_done_and_verified ?? false
].reduce((total, boolVal) => total + boolVal, 0);

优势说明

这种方式相比原实现的优势:

  • 代码更紧凑,无需单独声明多个中间变量
  • 所有需要计数的布尔值集中管理,后续新增/修改判断条件只需在数组中调整,维护成本更低
  • 逻辑清晰,一眼就能看到所有参与计数的属性

内容的提问来源于stack exchange,提问作者dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:50:24