Как представить массив с вложенными массивами как объект

#javascript #object

#javascript #объект

Вопрос:

Это мой код

 let array = [
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['gender', 'female'],
  ],
  [
    ['lastName', 'Kim'],
    ['age', 40],
    ['gender', 'female'],
  ],  [
    ['firstName', 'Joe'],
    ['age', 42],
    ['gender', 'male'],
  ],
]

array.map(function (el) {
   return Object.assign({}, el)
})
 

Однако именно так он отображается в консоли

введите описание изображения здесь

Я пробовал array.flat() , но не работал так, как предполагалось

Я хочу, чтобы результат выглядел примерно так

 [[{firstName : 'Mary'}.{lastName : 'jenkins'},..],...]
 

Ответ №1:

Вам нужен список объектов или список списка объектов типа ключ-значение (пара)?

Список объектов

 let array = [
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['gender', 'female'],
  ],
  [
    ['lastName', 'Kim'],
    ['age', 40],
    ['gender', 'female'],
  ],  [
    ['firstName', 'Joe'],
    ['age', 42],
    ['gender', 'male'],
  ],
]

const listOfObjects = array.map(Object.fromEntries);

console.log(listOfObjects.map(JSON.stringify).join('n')); 
 .as-console-wrapper { top: 0; max-height: 100% !important; } 

Список свойств объекта

 let array = [
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['gender', 'female'],
  ],
  [
    ['lastName', 'Kim'],
    ['age', 40],
    ['gender', 'female'],
  ],  [
    ['firstName', 'Joe'],
    ['age', 42],
    ['gender', 'male'],
  ],
]

const listOfListOfPairs = array.map(items =>
  items.map(item =>
    Object.fromEntries([item])));

console.log(listOfListOfPairs.map(JSON.stringify).join('n')); 
 .as-console-wrapper { top: 0; max-height: 100% !important; } 

Ответ №2:

вы можете использовать Object.fromEntries .

в вашем случае сработало бы что-то вроде этого:

 let array = [
  [
    ['firstName', 'Mary'],
    ['lastName', 'Jenkins'],
    ['age', 36],
    ['gender', 'female'],
  ],
  [
    ['lastName', 'Kim'],
    ['age', 40],
    ['gender', 'female'],
  ],  [
    ['firstName', 'Joe'],
    ['age', 42],
    ['gender', 'male'],
  ],
]

const asObjects = array.map((entries) => Object.fromEntries(entries))
console.log(asObjects)