[英]update value of each item in associative array
I have a JavaScript associative array, say: 我有一个JavaScript关联数组,说:
var myArray = new Object();
myArray["id1"] = "completed";
myArray["id2"] = "notCompleted";
myArray["id3"] = "started";
How can I update value of each item in this array, so that output should be, 如何更新此数组中每个项目的值,以便输出应为:
myArray["id1"] = "newValue";
myArray["id2"] = "newValue";
myArray["id3"] = "newValue";
Get all property name array using Object.keys()
and then iterate over them update property value using Array#forEach
method. 使用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);
Faster way using a while
loop. 使用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
to iterate across only the non-inherited properties. 始终建议使用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.