【问题标题】:how to convert array to objects in javascript [closed]如何在javascript中将数组转换为对象[关闭]
【发布时间】:2020-03-22 08:53:29
【问题描述】:

我有一组对象。

   const data = [ {group: [{label:"1"}]}, {topGroup: [{label:"12"}]} ]

我想把数组转换成这种格式的对象

 let permission ={
   group:["1"],
   topGroup:["2"]
 }

我该怎么做?

【问题讨论】:

  • 在 JavaScript 中,几乎“一切”都是一个对象。 : w3schools 但是.. 但是。 .但是...,预期的输出不能是一个对象。它是意外的令牌
  • 嗨 Sujon,您的数组似乎格式不正确。应该更像:const data = [ {group: ["1"]}, {topGroup: ["txt","ss"]} ]
  • 一个对象需要一个键值对,而预期的对象没有...??

标签: javascript arrays reactjs object


【解决方案1】:

基于:

   const data = [ {group: [{label:"1"}]}, {topGroup: [{label:"12"}]} ]

之后,你有很多选择来实现这一点,我建议使用Object.assign

let permission = Object.entries(
  Object.assign({}, ...data)
).map(([key, value]) => ({
  [key]: value.map(({ label }) => label),
}));

输出:

const data = [ {group: [{label:"1"}]}, {topGroup: [{label:"12"}]} ]

let permission = Object.entries(
  Object.assign({}, ...data)
).map(([key, value]) => ({
  [key]: value.map(({ label }) => label),
}));
console.log(permission)

有关Object.assigncheck this的更多信息。

【讨论】:

  • @HMR 会输出什么:如果是输入 let data = [{group:[{label:"ss"}]}]
  • @sujon 我已经用输出更新了我的答案。
  • 我根据您的回答编辑我的问题
  • 哈哈,我还根据您的编辑编辑了我的答案@sujon
  • 它不起作用。我看到有一个带有输出的标签
猜你喜欢
  • 2023-01-02
  • 2018-12-21
  • 1970-01-01
  • 2018-09-13
  • 2021-12-13
  • 1970-01-01
  • 2019-04-06
  • 2021-12-25
  • 2021-09-16
相关资源
最近更新 更多