【问题标题】:Merge two objects with AngularJS用 AngularJS 合并两个对象
【发布时间】:2018-03-30 16:42:25
【问题描述】:

我需要在 angularJS 中合并 2 个对象 我正在尝试使用 angular.merge(obj1, obj2),但这不是我所期望的

第一个对象

 // obj1
{
  "0": {
    "name": "340.jpg",
    "bytes": 21955,
    "link": "340.jpg?dl=0",
    "icon": "page_white_picture.png"
  },

  "1": {
    "name": "341.pdf",
    "bytes": 3394,
    "link": "340.pdf?dl=0",
    "icon": "page_white_acrobat.png"

  }

第二个对象

// obj2
{
  "id_pro": "70",
  "nuevo": "true",
  "fecha_ser": "2017-10-18"
}

预期结果

// Merged
{

  "0": {
    "name": "340.jpg",
    "bytes": 21955,
    "link": "340.jpg?dl=0",
    "icon": "icons64/page_white_picture.png",

    "id_pro": "70",
    "nuevo": "true",
    "fecha_ser": "2017-10-18"
  },

  "1": {
    "name": "341.pdf",
    "bytes": 3394,
    "link": "340.pdf?dl=0",
    "icon": "page_white_acrobat.png",

    "id_pro": "70",
    "nuevo": "true",
    "fecha_ser": "2017-10-18"

  }

}

在每组第一个对象中准确添加第二个对象。

可以使用 angular.merge 还是我需要一个自己的函数?谢谢

【问题讨论】:

    标签: javascript angularjs json merge


    【解决方案1】:

    您可以使用native javascript 来实现。

    其中一种解决方案包括forEach 方法与Object.assign 结合使用,以便合并属性。

    let obj={
      "0": {
        "name": "340.jpg",
        "bytes": 21955,
        "link": "340.jpg?dl=0",
        "icon": "page_white_picture.png"
      },
      "1": {
        "name": "341.pdf",
        "bytes": 3394,
        "link": "340.pdf?dl=0",
        "icon": "page_white_acrobat.png"
    
      }
    };
    let second={
      "id_pro": "70",
      "nuevo": "true",
      "fecha_ser": "2017-10-18"
    }
    Object.keys(obj).forEach(function(key){
      Object.assign(obj[key],second);
    });
    console.log(obj);

    【讨论】:

      【解决方案2】:

      只需对第一个对象进行迭代

      for(var i in obj1) {
          angular.merge(obj1[i], obj2);
      }
      

      【讨论】:

      • 完美!!谢谢克明
      【解决方案3】:

      值得注意的是,有很多方法可以迭代对象。由于您无论如何都在使用 AngularJS,因此您可以使用 Angular 辅助方法:

      angular.forEach(obj1, function(obj) {
          angular.merge(obj, obj2);
      });
      

      【讨论】:

        猜你喜欢
        • 2018-05-14
        • 2015-07-09
        • 2012-04-25
        • 2017-03-30
        • 2018-01-14
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多