切换嵌套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对象的值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章