2017-03-19 6 views
0

Ich weiß, dass dies schon einmal gefragt wurde, aber jede Lösung, die ich gefunden habe, tut es nicht so, wie ich es brauche.Konvertieren Array von Objekten zu einem Array

Das Array

[ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ] 

Objekt I Need

{ 
"Title": "Default Text", 
"Title2": "Default Text2" 
} 

Alles, was ich versuchen, dies zurückzukehren scheint, die falsch ist:

{ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} } 

Ich habe die meisten Dinge habe ich versucht, hier gefunden auf SO .. der letzte, den ich ausprobiert habe, ist falsch formatieren ist:

let obj = Object.assign({}, arrayHere); 

Was ich will:

WHat I need

Was ich erhalte, ist aber falsch:

What I keep getting, but is wrong

Antwort

2

Verwenden Array.prototype.reduce() Funktion:

var arr = [ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ], 
 
    result = arr.reduce((r,o) => {r[o.key] = o.value; return r; }, {}); 
 

 
console.log(result);

+0

ok lass mich versuchen brb – user1189352

+0

ES ARBEITET DANKE – user1189352

+0

@ user1189352, du bist willkommen – RomanPerekhrest

0
const a = [ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ]; 

function convertArr(arr) { 
    const res = {}; 

    a.forEach((item) => 
     res[item.key] = item.value; 
    }) 
    return res; 
} 

convertArr(a); 
0

Sie könnten die einzelnen erstellten Objekte mit Array#map und Object.assign

var array = [{ key: "Title", value: "Default Text" }, { key: "Title2", value: "Default Text2" }]; 
 
    object = Object.assign({}, ...array.map(o => ({ [o.key]: o.value }))); 
 
    
 
console.log(object);

0

Mit Array.prototype.map() zuordnen,

var Object = [ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ]; 

var result = Object.map(function(obj) { 
      var rObj = {}; 
      rObj[obj.key] = obj.value; 
      return rObj; }); 
Verwandte Themen