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);
我想将数组值添加到我现有的对象中,我得到 {1,2,10},其中 3 到 9 被覆盖,我的错误在哪里?
最佳答案
除了语法错误(复制/粘贴错误?)之外,您的代码还在遍历 objArr
并覆盖 objectz< 上字面上称为
(即 "key"
的属性objectz.key
)。您没有使用名为 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,console
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);
关于javascript - 将数组对象添加到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719748/