首页 > 解决方案 > 将数组对象转换为对象javascript

问题描述

我有一个对象包括数组的数组,如下所示

objArray= { hh:[['a','b'],['c','d']],jj:[['x','y'],['z','w']]}

我想要在这里将数组更改为对象:

转换对象

{
  hh:[
      {id:'a', name:'b'},
      {id:'c', name:'d'}
    ],
  jj:[
      {id:'x', name:'y'},
      {id:'z', name:'w'}
    ],
}

我写了 2 个函数来做到这一点,但它需要一点改变

function convertToObjects(arr) {
  return Object.values(arr).map(e => {
    return { id: e[0], name: e[1] };
  });
}

function convertChoicesToObjects(choicesArray) {
   return Object.keys(choicesArray).map((key) => (convertToObjects(choicesArray[key])));
}

const convertedObject=convertChoicesToObjects(objArray)

我的函数输出是:

{
  0:[
      {id:'a', name:'b'},
      {id:'c', name:'d'}
    ],
  1:[
      {id:'x', name:'y'},
      {id:'z', name:'w'}
    ],
}

标签: javascriptarraysecmascript-6

解决方案


你可以使用mapforEach方法。

objArray= { a:[['a','b'],['c','d']],b:[['x','y'],['z','w']]}
Object.keys(objArray).forEach((key) => {
  objArray[key] = objArray[key].map(([id, name]) => ({id, name}));
});

console.log(objArray);


推荐阅读