javascript - Construiește Json dintr-un array de obiecte
Încerc să folosesc TypeScript pentru a construi un obiect JSON dintr-un array de obiecte ca acesta:[
[
{ attribute: 'a', modifier: 121 },
{ attribute: 'b', modifier: 67 },
{ attribute: 'c', modifier: 121 },
{ attribute: 'd', modifier: 67 }
]
Aș dori să obțin ceva de genul:
{
a: 121,
b: 67,
c: 121,
d: 67
}
Dar pur și simplu nu pot să-mi dau seama de funcțiile de ordin superior ca să funcționeze.
Răspuns #1
Ai putea folosi metoda reduce care acceptă ca parametru o funcție callback.
Citește mai multe despre metoda reduce aici.
let array=[
{ attribute: 'a', modifier: 121 },
{ attribute: 'b', modifier: 67 },
{ attribute: 'c', modifier: 121 },
{ attribute: 'd', modifier: 67 }
];
let obj=array.reduce(function(obj,item){
obj[item.attribute] = item.modifier;
return obj;
},{});
console.log(obj);Răspunsul #2
Ai putea folosi Object.assign în combinație cu Array#map.
var array = [{ attribute: 'a', modifier: 121 }, { attribute: 'b', modifier: 67 }, { attribute: 'c', modifier: 121 }, { attribute: 'd', modifier: 67 }],
result = Object.assign(...array.map(o => ({ [o.attribute]: o.modifier })));
console.log(result);Cu atribuirea prin destructurare
var array = [{ attribute: 'a', modifier: 121 }, { attribute: 'b', modifier: 67 }, { attribute: 'c', modifier: 121 }, { attribute: 'd', modifier: 67 }],
result = Object.assign(...array.map(({ attribute, modifier }) => ({ [attribute]: modifier })));
console.log(result);