我有一个像这样的对象数组
obj = [
{
id: 3,
data: foo
},
{
id: 7,
data: bar
}
]
但是我需要把它送到
obj = {
3: {
id: 3,
data: foo
},
7: {
data: bar
}
}
不需要在子对象中使用id,但可能很方便。实现这一目标的最佳方法是什么?我不确定是否有一种简单的方法可以将属性提取为索引?
感谢您的帮助!
答案 0 :(得分:2)
obj2 = {};
obj.forEach(function(x){
obj2[x.id] = x;
});
答案 1 :(得分:0)
无论何时使用对象操作,都应考虑使用Underscore JavaScript library。它确实使得与他们合作更容易,并将为您处理浏览器不兼容问题。具体来说,我会使用map
函数:
var newObj = _.map(obj, function (subobj) {
var tempObj = {};
tempObj[subobj.id] = subobj;
return tempObj;
});