繁体   English   中英

更新关联数组中每个项目的值

[英]update value of each item in associative array

我有一个JavaScript关联数组,说:

var myArray = new Object();
myArray["id1"] = "completed";
myArray["id2"] = "notCompleted";
myArray["id3"] = "started";

如何更新此数组中每个项目的值,以便输出应为:

myArray["id1"] = "newValue";
myArray["id2"] = "newValue";
myArray["id3"] = "newValue";

使用Object.keys()获取所有属性名称数组,然后使用Array#forEach方法遍历它们,更新属性值。

 var myArray = new Object(); myArray["id1"] = "completed"; myArray["id2"] = "notCompleted"; myArray["id3"] = "started"; Object.keys(myArray).forEach(function(k) { myArray[k] = 'newVal'; }); console.log(myArray); 


使用while循环的更快方法。

 var myArray = new Object(); myArray["id1"] = "completed"; myArray["id2"] = "notCompleted"; myArray["id3"] = "started"; var names = Object.keys(myArray), i = names.length; while (i--) { myArray[names[i]] = 'newVal'; }; console.log(myArray); 

  • 用于循环
  • 始终建议使用hasOwnProperty来仅在非继承属性上进行迭代。

 var myArray = new Object(); myArray["id1"] = "completed"; myArray["id2"] = "notCompleted"; myArray["id3"] = "started"; for (var prop in myArray) { if (myArray.hasOwnProperty(prop)) { myArray[prop] = 'newValue'; } } console.log(myArray); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM