Js. Как элементы массива преобразовать в объекты?
m=[...'ABC'].map((x,y)=>{return {x:y}});
Делаю так, но имена ключей теряются.
Надо [{'A':0},{'B':1},{'C':2}], а получается [{x:0},{x:1},{x:2}]
m = [...'ABC'].map((x, y) => {return {[x]: y}});
На месте x в квадратных скобках может быть любое выражение.
const m = [...'ABC'].map((char, index) => ({ [char]: index }));
Несколько способов преобразовать элементы массива в объекты в JavaScript:
Использование цикла for. Нужно объявить переменную с пустым объектом и на каждой итерации добавлять элемент в качестве пары ключ-значение к объекту.
Применение метода Object.assign(). Он копирует значения свойств из одного или нескольких исходных объектов в целевой. Целевой объект указывают пустым, а значения свойств берут из массива. Поскольку самих свойств в массиве нет, они будут заменены порядковыми номерами элементов.
Использование спред-оператора. В новый объект скопируются значения массива, свойствами которых будут их индексы.
Применение метода reduce(). Метод применяется для перебора массива и совершения операций с его элементами. Передавая ему объект в качестве первого параметра, на каждой итерации можно расширять объект очередной парой ключ-значение и возвращать его.
Использование метода Object.fromEntries(). Этот метод создаёт объект с ключами и их значениями согласно данным массива. Каждый элемент массива должен быть массивом из двух элементов, которые и преобразуются в пару ключ-значение.