如何将模型对象数组转换为以模型 id 作为键的对象?

2024-04-22

在 Javascript 中,我有一个模型对象数组:

[  
   {  
      "id":13,
      "title":"Some title 1",
      "time": "friday"
      ...
   },
   {  
      "id":15,
      "title":"Some title 3",
      "time": "Saturday"
      ...
   },
   {  
      "id":16,
      ...
   },
   ...
]

(每个对象有超过2个值和属性) 我想获取一个对象,其中每个 id 从数组移动到键,如下所示:

{
  13: {
    title: "Some title 1",
    time: "Friday"
    ...
  },
  15: {
    title: "Some title 3",
    time: "Saturday"
    ...
  },
  16: {
    ...
  },
  ...
}

我正在使用 Rails 视图生成数组.to_json include: {}语法,所以 Rails 中的答案也适合我。我将使用 Redux 的结果对象作为初始状态,因此某种 Redux 答案也很棒。也会对 es6 和 es5 答案感兴趣(尽管我将使用 es5 答案,因为 Rails 不会在视图中编译 es6,但稍后我们将移植到客户端应用程序,它也适用)。


最简单的解决方案是迭代数组并将每个项目的副本附加到新对象:

let result = {};
for (let item of data) {
  let newObject = Object.assign({}, item);
  result[newObject.id] = newObject;
  delete newObject.id;
}

如果以后不需要数据数组,它会变得更简单:

let result = {};
for (let item of data) {
  result[item.id] = item;
  delete item.id;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将模型对象数组转换为以模型 id 作为键的对象? 的相关文章

随机推荐