var objectz = {};
objectz.a = 1;
objectz.b = 2
objArr = JSON.parse(localStorage.getItem('myItem'));
$.each(objArr, function(key,obj){
objectz.key = obj;
}
console.log(objectz);
我想将数组值添加到现有的obj中,得到{1,2,10},其中3到9被覆盖,我的错误在哪里?
除了语法错误(复制/粘贴错误?)之外,您的代码还在遍历objArr
并覆盖一个字面上称为的属性(即)。您没有使用称为的函数参数迭代器。如果要使用称为key的函数参数进行更新,则可能要使用。"key"
objectz
objectz.key
key
objectz
objectz[key]
很难猜测会有什么localStorage.getItem('myItem')
回报。假设objArr = [{c: 3},{d: 4},{e: 5},{f: 6},{g: 7},{h: 8},{i: 9},{j: 10}]
,这是您的代码的更正版本:
http://jsbin.com/viwiko/edit?js,控制台
var objectz = {};
objectz.a = 1;
objectz.b = 2;
objArr = [{c: 3},{d: 4},{e: 5},{f: 6},{g: 7},{h: 8},{i: 9},{j: 10}];
//JSON.parse(localStorage.getItem('myItem'));
//$.each(objArr, function(key,obj){
// objectz.key = obj;//overwrites a property called 'key' for each element of objArr
//});
$.each(objArr, function(key,obj){
objectz[key] = obj;//key will be the zero based array index (i.e. 0 to 7 for the example data)
});
console.log(objectz);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句