Jak převést pole na objekt v JavaScriptu

Existují čtyři způsoby, jak převést pole na objekt v JavaScriptu:

  1. Pomocí Object.assign() metoda pro převod pole na objekt, např. const obj = Object.assign({}, arr) .
  2. Použití syntaxe spreadu (... ) pro převod pole na objekt, např. const obj = {...arr} .
  3. Pomocí Array.forEach() metoda pro iteraci všech položek a jejich přidání jako pár klíč–hodnota k objektu.
  4. Pomocí Object.fromEntries() metoda pro převod pole párů klíč-hodnota na objekt, např. const obj = Object.fromEntries(arr) .

Object.assign() Metoda

Object.assign() Metoda byla zavedena v ES6 a kopíruje hodnoty všech vyčíslitelných vlastních vlastností z jednoho nebo více zdrojových objektů do cílového objektu. Má následující syntaxi:

Object.assign(target, ...sources)

target objekt je první argument a používá se také jako návratová hodnota. Následující příklad ukazuje, jak můžete použít Object.assign() metoda pro převod pole na objekt:

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

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

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

Přečtěte si tuto příručku, abyste se dozvěděli více o Object.assign() metoda.

Operátor šíření

Dalším způsobem, jak převést pole na objekt, je použití objektu spread ({... iterable} ) operátor. Zde je příklad:

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

const obj = { ...names }

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

Array.forEach() Metoda

Chcete-li použít Array.forEach() metoda pro převod pole na objekt:

  1. Deklarujte prázdný objekt jako proměnnou.
  2. Použijte Array.forEach() metoda pro iteraci prvků pole.
  3. V každé iteraci přidejte prvek jako pár klíč–hodnota k objektu.
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" }

Na rozdíl od výše uvedených metod, Array.forEach() umožňuje pojmenovat klíče nového objektu.

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

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

Můžete také přidat funkci do Array 's prototyp a zavolejte jej, kdykoli budete chtít převést pole na 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() Metoda

Object.fromEntries() metoda převede pole párů klíč–hodnota na objekt a vrátí výsledek, jak je ukázáno níže:

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

const obj = Object.fromEntries(props)

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

Všimněte si vnořených polí, která jsme tentokrát použili. Tato dvourozměrná pole obsahují alespoň dva prvky – klíč a hodnotu.