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

时间:2018-11-27 01:53:48

标签: javascript arrays javascript-objects

我有这种数组对象:

[
 {
 "abc": [
  {
    "abc def": [
      "sdf/sdf",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   }
  ]
 },
 "bcd": [
  {
    "as df": [
      "fd/f",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   }
  ]
 },
 "fd": [
  {
    "fdf ff": [
      "sdf/sdf",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   }
  ]
 }
]

简而言之,它是一个对象数组,其中对象将在数组内部并成为数组的索引。但是,我希望数组消失,因此它将成为纯对象列表。所以我想把它转换成这样的东西

 {
  "abc":
  {
    "abc def": [
      "sdf/sdf",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   },
  "bcd":
  {
    "abc def": [
      "sdf/sdf",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   },
  "fd":
  {
    "abc def": [
      "sdf/sdf",
      "qwe/er",
      "kjf/er",
      "0/1",
      "df/ff",
      "kkf/iei",
     ]
   }
  }

我尝试使用平面图,但是它不起作用。有人可以帮助我该怎么做。答案是赞赏。非常感谢

1 个答案:

答案 0 :(得分:0)

这可能有效:

const a = [{"abc": [{"abc def": ["sdf/sdf", "qwe/er", "kjf/er", "0/1", "df/ff", "kkf/iei"] } ] }];    
a.reduce((obj, item) => { const key = Object.keys(item)[0]; const first_value = item[key][0]; return {[key]: first_value}}, {})