通过在每个属性中找到的索引来订购json对象的最佳方法是什么?

时间:2011-11-23 03:39:33

标签: javascript json

我有一个像这样的对象数组

obj = [
    {
      id: 3,
      data: foo
    },
    {
      id: 7,
      data: bar
    }
]

但是我需要把它送到

 obj = {
    3: {
        id: 3,
        data: foo
    },
    7: {
        data: bar
    }
 }

不需要在子对象中使用id,但可能很方便。实现这一目标的最佳方法是什么?我不确定是否有一种简单的方法可以将属性提取为索引?

感谢您的帮助!

2 个答案:

答案 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;
});