2017-05-10 7 views
-1

以下の名前と値のペアの配列をJSONオブジェクトに変換したいと思います。私はアプローチの下に使用してみました名前の値をJSONオブジェクトに変換する

入力

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

の予想される出力

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

。それは動作しますが、我々はよりよい方法を持っています。

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

    return obj; 
} 
+0

これはJavaScriptオブジェクトであり、JSONオブジェクトではありません。これはかなり簡単な作業であり、いくつかの方法があります。何を試しましたか?どのようにして問題に近づくのか考えたことがありますか? – Quentin

+0

@quentin - 試したアプローチを追加 – Muzaffer

答えて

2

Array#reduceメソッドを使用して単一オブジェクトに縮小します。

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 
} 

今、このmyobjは、お好みの出力を持つことになります。

関連する問題