在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))

09-10 11:52
查看更多