2016-03-07 88 views
1

如何做轉換對象的數組是這樣的:轉換陣列(Angularjs)

[ 
    { 
     display_name: "view_dashboard", 
     value: 1 
    }, 
    { 
     display_name: "view_user", 
     value: 0 
    } 
] 

這樣:

{view_dashboard: 1, view_user: 0} 

回答

2

你可以嘗試使用the reduce function

var myArray =[ 
    { 
     display_name: "view_dashboard", 
     value: 1 
    }, 
    { 
     display_name: "view_user", 
     value: 0 
    } 
] 

var result = myArray.reduce(function(obj, item) { 
    obj[item.display_name] = item.value; 
    return obj; 
}, {}) 

console.log(result); // {view_dashboard: 1, view_user: 0} 
1

您可以嘗試Array.map

var data = [{ 
 
    display_name: "view_dashboard", 
 
    value: 1 
 
}, { 
 
    display_name: "view_user", 
 
    value: 0 
 
}]; 
 

 
var result = data.map(function(o){ 
 
    var _tmp = {}; 
 
    _tmp[o.display_name] = o.value 
 
    return _tmp; 
 
}); 
 

 
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

1

的方法有Array#forEach

var array = [{ display_name: "view_dashboard", value: 1 }, { display_name: "view_user", value: 0 }], 
 
    object = {}; 
 

 
array.forEach(function (o) { 
 
    object[o.display_name] = o.value; 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');