切换嵌套JavaScript对象的值[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了切换嵌套JavaScript对象的值[关闭]相关的知识,希望对你有一定的参考价值。

我想切换此嵌套输入对象的布尔值,对于文本值将其设为'',对于数字将其标记为未定义

var obj = { a: { b: { c: false } },
            x: { y: { z: 'sometext' }},
            l: { m: { n: 12}} 
           }; 

以一种有效的方式将obj输出为:

           { a: { b: { c: true} },
            x: { y: { z: '' }},
            l: { m: { n: undefined}} 
           }; 

我正在使用:

Object.keys(obj).map(function(k, i) {
    // Check if obj is Boolean else if object nest again till I find the Boolean value and toggle it.
}
答案

您可以构建一个新的对象,并采用具有递归调用的对象或值并返回切换后的值。

const
    toggle = object => Object.fromEntries(Object
        .entries(object)
        .map(([k, v]) => [k, v && typeof v === 'object' ? toggle(v) : !v])
    );

var object = { a: { b: { c: false } } };

console.log(toggle(object));

以上是关于切换嵌套JavaScript对象的值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中将嵌套对象转换为对象数组? [关闭]

在嵌套折叠中选择手风琴切换以完全关闭手风琴

JavaScript - 编辑嵌套对象

在javascript中搜索对象中的值[关闭]

如何在JavaScript中访问暂未存在的嵌套对象

理解 javascript 嵌套 for 循环的问题 [关闭]