【发布时间】:2019-01-31 16:35:26
【问题描述】:
我在 sessionStorage 上有一个对象,我需要更新用户输入的值。我能够更新对象的根,但不能更新嵌套在更深层次上的值。
request('http://localhost:7474/graphql/', query).then(data => {...}
sessionStorage.setItem('queryData', JSON.stringify(data));
function update(value){
let prevData = JSON.parse(sessionStorage.getItem('queryData'));
Object.keys(value).forEach(function(val, key){
prevData[val] = value[val];
});
sessionStorage.setItem('queryData', JSON.stringify(prevData));
}
update({ maritalStatus: "single" });
所以 maritalStatus 最终被添加而不是被替换,我必须替换值:
Object: [,...]
0: {id: "x", maritalStatus: "married"} //want to replace this value here
maritalStatus: "single" // this is where the value is been written
【问题讨论】:
-
prevData是{id: "x", maritalStatus: "married"}?或者那个变量是什么? -
先更新一下如何构建Object并设置第一个sessionStorage Object,prevData是一个相当大的Object,有多个嵌套值
标签: javascript html javascript-objects session-storage