在我的例子中,如何将对象推入数组
How to push an object into array in my case?
我正试图将一个对象推入数组。
我有类似的东西
var productCatogory = obj.data; //obj is http request data
var productStatus = obj.status;
var productObj = [productCatogory, productStatus];
for (var id in currentProducts) {
if(productObj[0] == id) {
productObj[0].push({'id': id, 'name': currentProducts[id]});
} else {
productObj[1].push({'id': id, 'name': currentProducts[id]});
}
}
我想要的结果:
productObj = [ productObj[0][{'id': id, 'name': currentProducts[id]},
{'id': id, 'name': currentProducts[id]},
{'id': id, 'name': currentProducts[id]}
],
prodcutObj[1][{'id': id, 'name': currentProducts[id]}.
{'id': id, 'name': currentProducts[id]},
{'id': id, 'name': currentProducts[id]},
]
]
上面的代码将有未定义的。这不是一个函数错误,因为productObj[0]
不是一个数组。我该如何解决此问题?非常感谢!
productObj
已经是一个对象数组。如果你想在上面添加/更新属性,只需直接访问属性即可:
for (var id in currentProducts) {
if(productObj[0].id == id) {
productObj[0].id = id;
productObj[0].name = currentProducts[id];
} else {
productObj[1].id = id;
productObj[1].name = currentProducts[id];
}
}
现在,如果你想替换当前对象,那么你可以设置整个对象:
productObj[0] = {'id': id, 'name': currentProducts[id]};
更新:
为了实现您想要的结果,您可以尝试在对象中创建一个属性来容纳新数组:
productObj[0].objects = [];
productObj[1].objects = [];
for (var id in currentProducts) {
if(productObj[0] == id) {
productObj[0].objects.push({'id': id, 'name': currentProducts[id]});
} else {
productObj[1].objects.push({'id': id, 'name': currentProducts[id]});
}
}
更新2:
它在这个Fiddle中工作。
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序