我有一个名为“属性”的数组或对象
此属性数组具有以下格式的对象:
{
"some-unique-key-A": {
name:"someName1",
value: {
"some-unique-key-B": {
name:"someName11",
value : "someValue2"
}
}
}
}
在这里,我们不知道键值对的嵌套级别是什么。我们只知道一件事,数据要更新密钥:“some-unique-key-X”
在这种情况下,我们如何可以无限地更新x级嵌套数据?
使用平坦的一级道具状态!不可变的不容易递归,用一级标准化你的状态,易于连接;)
这就是我解决这个问题的方法。我创建了一个递归函数,它将接受某个对象的“深拷贝”(不是浅拷贝)和需要更新值的唯一键。它对给定的键进行更新,它返回更新的对象以存储为等待结果的先前递归对象的值的值。最后它只是用新的状态替换原始状态的对象。我不知道它是否会改变状态(也许它会变异),但它确实有效。