У меня есть такой массив объектов:
0:key:"name" value:"John"
1:key:"age" value:"30"
2:key:"car" value:"Ford"
Как я могу превратить это в это:
[{ "name":"John", "age":30, "car":"ford" }]
Я пробовал что-то вроде этого:
tempArray.forEach(function(s) {
var object = {
s.key: s.value
}
newArray.push(object);
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Можно использовать Array.reduce()
var arr = [{key:"name", value:"John"},
{key:"age", value:"30"},
{key:"car" ,value:"Ford"}];
var result = [];
var map = arr.reduce((a,curr)=>{
a[curr.key] = curr.value;
return a;
},{});
result.push(map);
console.info(result);Вы можете использовать Array#map для одной пары ключ / значение и собрать все в объект с помощью Object.assign
var array = [{ key: "name", value: "John" }, { key: "age", value: "30" }, { key: "car", value: "Ford"}],
object = Object.assign(...array.map(({ key, value }) => ({ [key]: value })));
console.info(object);let array = [{ key: "name", value: "John" }, { key: "age", value: "30" }, { key: "car", value: "Ford"}];
let answer = [array.reduce((acc, cur) => {
acc[cur.key] = cur.value
return acc
},{})]
console.info(answer)Вы можете использовать уменьшать для цикла по массиву и создания их на лету
я надеюсь это поможет тебе
var a = [{name:"a"},{age:10},{car:"ford"}];
var d = {};
a.map((data)=>{
if (data.name){
d.name=data.name;
}else if (data.age){
d.age=data.age
}else{
d.car=data.car
}
})
console.info(d)