Sådan konverteres et array til et objekt i JavaScript

Der er fire måder at konvertere et array til et objekt i JavaScript:

  1. Ved brug af Object.assign() metode til at konvertere et array til et objekt, f.eks. const obj = Object.assign({}, arr) .
  2. Brug af spread-syntaksen (... ) for at konvertere et array til et objekt, f.eks. const obj = {...arr} .
  3. Brug af Array.forEach() metode til at iterere over alle elementer og tilføje dem som et nøgleværdi-par til et objekt.
  4. Brug af Object.fromEntries() metode til at konvertere en matrix af nøgleværdi-par til et objekt, f.eks. const obj = Object.fromEntries(arr) .

Object.assign() Metode

Object.assign() metoden blev introduceret i ES6, og den kopierer værdierne af alle utallige egne egenskaber fra et eller flere kildeobjekter til et målobjekt. Den har følgende syntaks:

Object.assign(target, ...sources)

target objekt er det første argument og bruges også som returværdi. Følgende eksempel viser, hvordan du kan bruge Object.assign() metode til at konvertere et array til et objekt:

const names = ['Alex', 'Bob', 'Johny', 'Atta']

const obj = Object.assign({}, names)

console.log(obj)
// { '0': 'Alex', '1': 'Bob', '2': 'Johny', '3': 'Atta' }

Læs denne guide for at lære mere om Object.assign() metode.

Spread Operator

En anden måde at konvertere en matrix til et objekt er ved at bruge objektspredningen ({... iterable} ) operatør. Her er et eksempel:

const names = ['Alex', 'Bob', 'Johny', 'Atta']

const obj = { ...names }

console.log(obj)
// { '0': 'Alex', '1': 'Bob', '2': 'Johny', '3': 'Atta' }

Array.forEach() Metode

For at bruge Array.forEach() metode til at konvertere et array til et objekt:

  1. Erklær et tomt objekt som en variabel.
  2. Brug Array.forEach() metode til at iterere over array-elementerne.
  3. I hver iteration skal du tilføje elementet som et nøgle-værdi-par til objektet.
const names = ['Alex', 'Bob', 'Johny', 'Atta']

const obj = {}

names.forEach((elem, i) => {
  obj[i] = elem
})

console.log(obj)
// { 0: "Alex", 1: "Bob", 2: "Johny", 3: "Atta" }

I modsætning til ovenstående metoder, er Array.forEach() metode giver dig mulighed for at navngive nøglerne til det nye objekt.

names.forEach((elem, i) => {
  obj[`key${i}`] = elem
})

console.log(obj)
// { key0: 'Alex', key1: 'Bob', key2: 'Johny', key3: 'Atta' }

Du kan også tilføje en funktion til Array 's prototype og kald den, når du vil konvertere et array til et objekt:

Array.prototype.toObject = function () {
  const obj = {}

  this.forEach((elem, i) => {
    obj[i] = elem
  })

  return obj
}

const newObj = ['Alex', 'Bob', 'Johny', 'Atta'].toObject()

console.log(newObj)
// { '0': 'Alex', '1': 'Bob', '2': 'Johny', '3': 'Atta' }

Object.fromEntries() Metode

Object.fromEntries() metode konverterer en matrix af nøgleværdi-par til et objekt og returnerer resultatet som vist nedenfor:

const props = [
  ['name', 'John Doe'],
  ['age', 29]
]

const obj = Object.fromEntries(props)

console.log(obj)
// { name: 'John Doe', age: 29 }

Læg mærke til de indlejrede arrays, vi brugte denne gang. Disse todimensionelle arrays indeholder mindst to elementer - en nøgle og en værdi.