Преобразование Массива в массив объекта в javascript

#javascript

#javascript

Вопрос:

у меня есть массив array, давайте назовем его x

 let x = [
  ["Last Name", "First Name", "Email Address", "Role", "Employee id (optional)"],
  ["Smith", "John", "jsmih1@abc.com", "Employee", "ABC123XYZ"],
  ["Doe", "Jane", "jsmih2@abc.com", "Verifier", "ABC123XYZ"]
]
  

как мне сделать так, чтобы

 [
  {
    "Last Name": "Smith",
    "First Name": "John",
    "Email Address": "jsmih1@abc.com",
    "role": "Employee",
    "Employee id": "ABC123XYZ"
  },

  {
    "Last Name": "Doe",
    "First Name": "Jane",
    "Email Address": "jsmih2@abc.com",
    "role": "Verifier",
    "Employee id": "ABC123XYZ"
  }
]
  

как сконструировать функцию, которая может возвращать указанный выше формат

Комментарии:

1. Привет, Бен, ты пытаешься написать функцию, которая преобразует вышеуказанную структуру в нижнюю структуру, или ты спрашиваешь о том, как создавать объекты?

2. я пытаюсь написать функцию

Ответ №1:

Вы могли бы использовать map

 let x = [
  ['Last Name', 'First Name', 'Email Address', 'Role', 'Employee id'],
  ['Smith', 'John', 'jsmih1@abc.com', 'Employee', 'ABC123XYZ'],
  ['Doe', 'Jane', 'jsmih2@abc.com', 'Verifier', 'ABC123XYZ']
]

const [props, ...data] = x

const res = data.map(d => {
  const obj = {}
  d.forEach((value, index) => {
    obj[props[index]] = value
  })
  return obj
})

console.log(res)