Преобразовать массивы в объекты js

353
02 июня 2017, 15:05

Возникла проблема. Есть массив

const parent = [
    ['a', 1, 2, 3],
    ['b', 4, 5, 6],
    ['c', 7, 8, 9, 10],
    ['d', 11, 12, 13, 14, 15]
]

Необходимо преобразовать его в:

const secondArr = [
    {a: 1, b: 4, c: 7, d: 11},
    {a: 2, b: 5, c: 8, d: 12},
    {a: 3, b: 6, c: 9, d: 13},
    {a: null, b: null, c: 10, d: 14},
    {a: null, b: null, c: null, d: 15}
]

Как можно проще сделать это преобразование?

Answer 1

const parent = [ 
  ['a', 1, 2, 3], 
  ['b', 4, 5, 6], 
  ['c', 7, 8, 9, 10], 
  ['d', 11, 12, 13, 14, 15], 
]; 
 
function transform(array) { 
  let max = 0; 
  for (let key in array) { 
    max = Math.max(array[key].length - 1, max); 
  } 
  let obj = []; 
  for (let i = 0; i < max; i++) { 
    obj[i] = {}; 
    for (let j = 0; j < array.length; j++) { 
      obj[i][array[j][0]] = (array[j][i + 1] !== undefined ? array[j][i + 1] : null); 
    } 
  } 
  return obj; 
} 
 
console.log(transform(parent));

READ ALSO
Промисы, почему не работает условие

Промисы, почему не работает условие

Не совсем понимаю в чем дело, суть такова:

362
Как лучше реализовать такой слайдер?

Как лучше реализовать такой слайдер?

ЗдравствуйтеЕсть такой код слайдера:

385
Как убрать чек бокс знаю только тайтл

Как убрать чек бокс знаю только тайтл

Как убрать чек бокс зная только тайтл при нажатии onclick='deleTe', при условии, что чек бокс уже стоит

372
Получения доступа к содержимому фрейма

Получения доступа к содержимому фрейма

Есть site1ru, на нём есть iframe, в котором подгружается site2

339