как преобразовать вложенный массив объектов в объект массива - PullRequest
0 голосов
/ 22 марта 2020

У меня есть массив вложенного массива объектов.

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

Я хочу преобразовать массив в этот формат объектов и хочу получить этот вывод

 let permission ={

       group:["1"],
       topGroup:["2"]
     }

Как можно Я делаю это?

Ответы [ 4 ]

2 голосов
/ 22 марта 2020

const data = [ {group: [{label:"1"}]}, {topGroup: [{label:"2"}]} ]
let permission = {};
data.forEach(val =>{
  for(prop in val){
    permission[prop] = [val[prop][0]["label"]]
  }
})

console.log(permission)

Поставьте это голосование, если вы этого хотите.

2 голосов
/ 22 марта 2020

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

const converted = data.reduce((a,b) => {
   const onlyKey = Object.keys(b)[0];
   a[onlyKey] = b[onlyKey].map(i => i.label);
   return a;
}, {})

console.log(converted)
1 голос
/ 22 марта 2020

Использовать деструктуризацию и Object.fromEntries.

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

const permission = Object.fromEntries(
  data.map(item => {
    const [[key, [obj]]] = Object.entries(item);
    return [key, Object.values(obj)];
  })
);

console.log(permission);
1 голос
/ 22 марта 2020

Предполагая, что данные будут иметь label s как в этом формате навсегда, вы можете использовать что-то подобное

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

// The dict variable under here is the second parameter of reduce that I passed it `{}`.
// The ind variable is the data at the index of the array.
var newData = data.reduce(function(dict, ind){
    // You basically get the keys and the values and put them in place
    // and return the last state to the reduce function.
    dict[Object.keys(ind)] = Object.values(ind)[0][0]["label"];
    return dict;
}, {})

console.log(newData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...