Создать отдельный объект из массива объектов - JS / ES6 - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть массив:

[
    {"allocateProd1": "30.0000"}, 
    {"allocateProd2": "0"}, 
    {"allocateProd3": "0"},
    {"allocateProd4": "30"}
]

Этот массив генерируется динамически, так как количество объектов внутри меняется в зависимости от данных

Мне нужен объект:

{
    "allocateProd1": "30.0000", 
    "allocateProd2": "0", 
    "allocateProd3": "0", 
    "allocateProd4": "30"
}

В основном собираюсь использовать его в React.Решение JS / ES6 поможет

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Просто для полноты, взяв массив и распределите ... объекты в Object.assign с объектом в качестве цели.Вуаля!

var array = [{ allocateProd1: "30.0000"}, { allocateProd2: "0"}, { allocateProd3: "0"}, { allocateProd4: "30"}],
    object = Object.assign({}, ...array);

console.log(object);
0 голосов
/ 24 февраля 2019

Альтернативой является использование функции reduce + spread syntax.

let arr = [
    {"allocateProd1": "30.0000"}, 
    {"allocateProd2": "0"}, 
    {"allocateProd3": "0"},
    {"allocateProd4": "30"}
];

let result = arr.reduce((a, c) => ({...a, ...c}), Object.create(null));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Альтернативой является использование функции Object.assign

let arr = [
    {"allocateProd1": "30.0000"}, 
    {"allocateProd2": "0"}, 
    {"allocateProd3": "0"},
    {"allocateProd4": "30"}
];

let result = arr.reduce((a, c) => Object.assign(a, c), Object.create(null));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...