Строка объекта JSON для преобразования массива с использованием карты

Вот мой ответ с моего сервера.

var my_array = [{"1":"1"},{"2":"8"},{"4":"13"},{"5":"19"},{"6":"22"}]; //from server

Я хочу преобразовать его как

var new_array = { 1 : "1", 2 : "8", 4 : "13", 5 : "19" , 6 : "22"}

Но как преобразовать его с помощью функции map

new_array = my_array.map(function (a) {
    return ???
});

person Ashis Biswas    schedule 13.08.2019    source источник
comment
Вы не можете сделать это через отображение. Вам нужно перебрать каждый объект и объединить их в один объект.   -  person VLAZ    schedule 13.08.2019
comment
Просто используйте Object.assign({}, ...my_array)   -  person adiga    schedule 13.08.2019


Ответы (1)


Используйте reduce с расширением — вы не можете сопоставить массив с объектом. Распространение также позволяет использовать несколько свойств в каждом объекте.

var new_array = my_array.reduce((a, c) => ({ ...a, ...c }), {});

Вы также можете использовать Object.fromEntries после flatMapping entries:

var new_array = Object.fromEntries(my_array.flatMap(Object.entries));
person Jack Bashford    schedule 13.08.2019