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

如何遍历JavaScript嵌套对象并切换所有布尔值?

遍历嵌套JavaScript对象并将所有false改为true

你可以通过递归遍历的方式处理嵌套对象的每一个属性,遇到布尔值false就替换为true,遇到子对象则继续深入处理。以下是具体实现:

实现代码

function convertFalseToTrue(obj) {
  // 遍历对象的每个键
  for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
      const value = obj[key];
      // 如果当前值是对象(且不是null),递归处理
      if (typeof value === 'object' && value !== null) {
        convertFalseToTrue(value);
      } 
      // 如果当前值是false,替换为true
      else if (value === false) {
        obj[key] = true;
      }
    }
  }
}

// 你的测试对象
const nestedObj = {
    "2211284396232-5": {
        "2211284396232-5": false, 
        "644889430161": {
            "4812219518053": false, 
            "4812219518055": false,
            "4812219518063": false,
            "4812219518064": false,
            "4812219518069": false, 
            "644889430161": false
        }, 
    },
    "2211628865398-6": {
        "2211628865398-6": false, 
            "729563966440": {
                "5229922707373": false, 
                "729563966440": false
            }, 
    },
     "2212485574058-4": {
        "2212485574058-4": false, 
            "689399023594": {
                "5077186698704": false, 
                "5077186698712": false, 
                "689399023594": false
            }, 
    },
};

// 调用函数修改原对象
convertFalseToTrue(nestedObj);
console.log(nestedObj); // 输出修改后的对象

补充说明

  • 上述代码会直接修改原对象,如果希望保留原对象,可以先深拷贝一份再处理:
    const copiedObj = JSON.parse(JSON.stringify(nestedObj));
    convertFalseToTrue(copiedObj);
    
  • 函数中加入obj.hasOwnProperty(key)是为了避免遍历对象原型链上的属性,只处理自身的属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:20:58