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

如何在嵌套数组中查找值并将布尔类型的active值转为Yes/No字符串

如何将嵌套数组中布尔类型的"active"字段转换为字符串"Yes"/"No"

你可以通过遍历嵌套数组,对每个active字段进行条件判断转换,以下是两种常见实现方式:

直接修改原数组(使用forEach)

这种方式会直接改变原始数据:

const data = [
  {
    "id":81,
    "time":"2022-01-01 19:30:00",
    "subList":[
      {
        "active":false,
        "success":null
      }
    ]
  },
  {
    "id":89,
    "time":"2022-01-01 21:00:15",
    "subList":[
      {
        "active":true,
        "success":1
      }
    ]
  }
];

// 遍历外层数组的每个对象
data.forEach(item => {
  // 遍历当前对象的subList数组
  item.subList.forEach(subItem => {
    // 将布尔值转换为对应字符串
    subItem.active = subItem.active ? "Yes" : "No";
  });
});

console.log(data);

创建新数组保留原数据(使用map)

如果不想修改原始数据,可以用map生成新数组:

const transformedData = data.map(item => ({
  ...item, // 复制原对象的所有字段
  subList: item.subList.map(subItem => ({
    ...subItem, // 复制子对象的所有字段
    active: subItem.active ? "Yes" : "No" // 转换active字段
  }))
}));

console.log(transformedData);

健壮性优化(处理空数组或缺失字段)

如果subList可能为空或不存在,或者active字段类型不确定,可以添加判断逻辑:

data.forEach(item => {
  // 先确认subList是有效数组
  if (Array.isArray(item.subList)) {
    item.subList.forEach(subItem => {
      // 仅当active是布尔类型时才转换
      if (typeof subItem.active === 'boolean') {
        subItem.active = subItem.active ? "Yes" : "No";
      }
    });
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:54:04