gpt4 book ai didi

javascript - 如何在 React JS 中一次更新嵌套对象中所有键的值?

转载 作者:行者123 更新时间:2023-11-28 17:04:32 25 4
gpt4 key购买 nike

我有如下所示的对象,在下面的对象中我将首选项保存为 true/false现在我想立即更新所有状态,对于诸如选中全部或未选中全部的情况,为真/假。

obj = {
a:false,
b:{
c:{
e:{
f:false,
g:true,
},
h:{
i:false,
j:true,
}
}
},
k:{
l:false,
m:false
},
n:true
}

我正在考虑使用递归函数,并且我可以使用递归函数访问所有键的值但我需要最好的方法来更新状态。

最佳答案

对于非常深的数组,直接的方法可能会变慢,我想到了一种用字符串替换来实现的方法。

const obj = {
a:false,
b:{
c:{
e:{
f:false,
g:true,
},
h:{
i:false,
j:true,
}
}
},
k:{
l:false,
m:false
},
n:true
};

function checkAll(obj,state = true) {
const regex = state ? /true/gi : /false/gi;
const changeTo = state ? 'false' : 'true';
// the magic, using string replace to set all at once
return JSON.parse(JSON.stringify(obj).replace(regex, changeTo));
}

function uncheckAll(obj) {
return checkAll(obj,false);
}

console.log(checkAll(obj));
console.log(uncheckAll(obj));

无法告诉您它的性能如何,但我认为无论数组有多深,复杂性都会保持不变。

关于javascript - 如何在 React JS 中一次更新嵌套对象中所有键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56233396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com