在sessionStroage中,
按键:qq
值:[{“ javascript”:800},{“ python”:600},{“ html”:300}]
我将对其进行一些更改,例如,只需将python
更改为1000(我不知道其在数组中的顺序)
模拟代码
// set storage
sessionStorage.setItem('qq', JSON.stringify([{'javascript': 800}, {'python': 600}, {'html': 300}]));
// get from storage
var ss = JSON.parse(sessionStorage.getItem('qq'));
这就是我尝试的
// for-loop to update value to 'python'
for (var i in ss) {
if (Object.keys(ss[i])[0] === 'python'){
ss[i][Object.keys(ss[i])[0]] = 1000;
}
}
它可以工作,但是相当复杂且不直观,是否有更好的方法呢?
任何意见都可以,谢谢。
最佳答案
您可以使用简单的ForEach
方法来实现。forEach()方法为每个数组元素执行一次提供的函数。
var ss = [{'javascript': 800}, {'python': 600}, {'html': 300}]
console.log("Before "+JSON.stringify(ss))
ss.forEach(function(element) {
if(Object.keys(element) == 'python'){
element['python'] = 1000;
}
});
console.log("After "+JSON.stringify(ss))