javascript - 将数组对象添加到对象中

标签 javascript jquery json

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/

相关文章:

javascript - d3-drag with html元素初始位置问题

javascript - Node.js 返回文件结果

jquery - 如果另一个元素不存在,是否有一种优雅的方法在 JQuery 中选择一个元素?

jquery - 为什么这个 jquery.hide() 函数不能作用于这个 UL 元素?

JSON 应用映射到对象的映射

javascript - 函数完成后运行代码并获取返回值

javascript - 停止使用 javascript 循环音频但完成播放迭代

jquery - 页面一部分的 html2canvas 屏幕截图

c++ - Docker 远程 API JSON 架构定义

jquery - Ajax 调用状态无法加载资源。简单的 ASP.NET 联系人类