【问题标题】:Convert array of object to single object in javascript(Angularjs)在javascript(Angularjs)中将对象数组转换为单个对象
【发布时间】:2016-03-07 16:53:14
【问题描述】:

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

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

到这里:

{view_dashboard: 1, view_user: 0}

【问题讨论】:

    标签: javascript arrays object


    【解决方案1】:

    你可以试试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}
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-10-10
          • 1970-01-01
          • 1970-01-01
          • 2017-01-14
          • 2019-02-12
          • 1970-01-01
          • 2015-02-25
          • 1970-01-01
          相关资源
          最近更新 更多