Вы захотите использовать метод Array.reduce()
.
Метод redu () выполняет функцию редуктора (которую вы предоставляете) для каждого члена массива, в результате чего получается одно выходное значение.
arr.reduce(callback[, initialValue])
Метод обратного вызова reduce()
принимает параметры accumulator
и currentValue
.
- аккумулятор: Значение запоминается во всемкаждая итерация метода и в конечном итоге становится окончательным возвращаемым значением.
- currentValue: Текущий элемент, обрабатываемый в
array
.
{}
предоставляется в качестве последнего аргумента reduce()
в качестве начального значения для начала.И с каждой итерацией Array
мы добавляем к ней, в конечном итоге, создавая окончательный Object
.
Пример: (ES6)
const letters = ['a', 'b', 'c'];
const obj = letters.reduce((accumulator, currentValue) => {
accumulator[currentValue] = currentValue;
return accumulator;
}, {});
console.log(obj);
Пример: (ES5)
var letters = ['a', 'b', 'c'];
var obj = letters.reduce(function (accumulator, currentValue) {
accumulator[currentValue] = currentValue;
return accumulator;
}, {});
console.log(obj);
Ссылка: Array.prototype.reduce () Документация Mozilla.