【发布时间】:2021-08-26 21:42:50
【问题描述】:
我一直在尝试递归,似乎我可以接近我的预期,但是,我被困在更新后返回整个对象。
举个例子,您有一个对象,其中包含一个数组,其中包含您想要更新值的键...
const testObj = {
data: {
dataNested: {
dataNestedNested: "Hello",
amITrue: false
}
},
data2: {
dataNested2: {
dataNestedNested2: "Hello",
amITrue2: false
}
},
data3: {
dataNested3: {
dataNestedNested3: "Hello",
amITrue3: false
}
}
}
const scopeArray = ["data2", "dataNested2", "dataNestedNested2"]
在更新目标键/值之后,您将如何将对象作为一个整体返回。这是我构建的...
const findAndUpdate = (obj, array, key, i, value) => {
if (i === array.length - 1) {
obj = { ...obj, [key]: value };
console.log(obj);
} else {
i++;
findAndUpdate(obj[key], array, array[i], i, value);
}
};
findAndUpdate(testObj, scopeArray, scopeArray[0], 0, "World");
console.log 输出
> {dataNestedNested2: "World", amITrue2: false}
【问题讨论】:
标签: javascript reactjs recursion state