2017-05-10 2 views
-1

Ich möchte unten Array von Name-Wert-Paar zu JSON-Objekt konvertieren.Konvertieren Name Wert in JSON-Objekt

Eingang

Data = [ {"name":"aaa", "value":111},{"name":"bbb", "value":222}] 

Erwartete Ausgabe

Data = {"aaa":111, "bbb":222} 

Ich habe versucht, unter Ansatz. Es funktioniert, aber haben wir einen besseren Weg.

convertToJson(arr){ 
    var obj = {}; 
    _.each(arr,function(ar){ 
     obj[ar.name]= ar.value; 
    }); 

    return obj; 
} 
+0

Das ist ein JavaScript-Objekt, kein JSON-Objekt. Dies ist eine ziemlich triviale Aufgabe und es gibt mehrere Ansätze, die Sie ergreifen könnten. Was hast du probiert? Haben Sie überhaupt darüber nachgedacht, wie Sie das Problem angehen könnten? – Quentin

+0

@quentin - Hinzugefügt den Ansatz ich versuchte – Muzaffer

Antwort

2

Verwendung Array#reduce Verfahren zu einem einzigen Objekt zu reduzieren.

var Data = [{ 
 
    "name": "aaa", 
 
    "value": 111 
 
}, { 
 
    "name": "bbb", 
 
    "value": 222 
 
}]; 
 

 
var res = Data 
 
    // itertae over the array 
 
    .reduce(function(obj, o) { 
 
    // defince the object property based on array element 
 
    obj[o.name] = o.value; 
 
    // return object reference 
 
    return obj; 
 
    // set initial value as an empty object 
 
    }, {}); 
 

 
console.log(res);

-1
var myObj = {}; 

for(var i = 0 ; i < Data.length ; i++){ 
    myObj[Data[i].name] = Data[i].value 
} 

Jetzt myObj Ihre bevorzugte Ausgabe haben.

Verwandte Themen