在javascript(Angularjs)中将对象数组转换为单个对象

Convert array of object to single object in javascript(Angularjs)

本文关键字:对象 数组 转换 单个 javascript Angularjs      更新时间:2023-09-26

如何像这样转换对象数组:

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

对此:

{view_dashboard: 1, view_user: 0}

您可以尝试使用 reduce 函数:

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}

你可以试试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>");

一种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>');