Comment convertir un tableau d'objets comme celui-ci:

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

Pour ça:

{view_dashboard: 1, view_user: 0}
1
Ehsan Ali 7 mars 2016 à 11:48

3 réponses

Meilleure réponse

Vous pouvez essayer d'utiliser la fonction de réduction :

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}
2
cl3m 7 mars 2016 à 08:51

Vous pouvez essayer 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
Rajesh 7 mars 2016 à 08:51

Une approche avec un 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>');
1
Nina Scholz 7 mars 2016 à 08:53