Der er fire måder at konvertere et array til et objekt i JavaScript:
- Ved brug af
Object.assign()
metode til at konvertere et array til et objekt, f.eks.const obj = Object.assign({}, arr)
. - Brug af spread-syntaksen (
...
) for at konvertere et array til et objekt, f.eks.const obj = {...arr}
. - Brug af
Array.forEach()
metode til at iterere over alle elementer og tilføje dem som et nøgleværdi-par til et objekt. - 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:
- Erklær et tomt objekt som en variabel.
- Brug
Array.forEach()
metode til at iterere over array-elementerne. - 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.