如何遍历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
相关产品推荐
相关产品推荐

