如何将对象数组转换为对象对象

Posted

技术标签:

【中文标题】如何将对象数组转换为对象对象【英文标题】:How do you convert an array of objects into an object of object 【发布时间】:2022-01-23 06:15:16 【问题描述】:

我在将对象数组转换为对象对象时遇到问题。公司 API 需要这种格式的数据。任何帮助,将不胜感激。这是一个例子

原创

const array = [
 
  type: 'ITEM',
  info: 
   item_id: 'house'
  
 ,

  type: 'ITEM',
  info: 
   item_id: 'house'
  
 
]

决赛

const array = 
 
  type: 'ITEM',
  info: 
   item_id: 'house'
  
 ,

  type: 'ITEM',
  info: 
   item_id: 'house'
  
 

【问题讨论】:

那不是一个有效的对象 您要解决的实际问题是什么让您认为数组不够好? (如果您的数据是对象列表,那么很少有理由将其转换为具有键/值对的对象) 我们的 API 需要一个对象对象作为响应。 也许convert an array to object 可以提供帮助。 【参考方案1】:

您必须对对象元素使用键/值对,但您可以从这个数组中创建一个对象,如下所示:

const array = [
 
  type: 'ITEM',
  info: 
   item_id: 'house'
  
 ,

  type: 'ITEM',
  info: 
   item_id: 'house'
  
 
]

let result = 
array.forEach((el, idx) => 
  result['data_' + idx] = el
)

console.log(result)

【讨论】:

【参考方案2】:

您的对象将需要密钥。 javascript 中的对象总是 key:value, ... (键值对)。

因此您需要创建这些:

const array = [
 
  type: 'ITEM',
  info: 
   item_id: 'house'
  
 ,

  type: 'ITEM',
  info: 
   item_id: 'house'
  
 
]

const obj = array.reduce((o,e,i) =>  return  ...o, ['item_'+i]: e , );

console.log(obj);

将“items_”更改为适合您目的的任何内容。 如果可能的话,我建议在这里使用一个数组。

【讨论】:

以上是关于如何将对象数组转换为对象对象的主要内容,如果未能解决你的问题,请参考以下文章

如何迭代对象数组或将对象列表转换为数组?

如何将对象列表转换为对象列表数组,每个数组索引都有 2 个计数?

如何将对象响应对象的猫鼬聚合数组转换为json对象响应

如何将对象数组转换为嵌套对象?

如何将对象数组转换为具有索引的对象?

如何将具有元素数组的每个对象的对象列表转换为具有子元素作为属性的对象数组