使用AngularJS将对象属性复制到新/另一个对象

时间:2014-10-09 00:20:39

标签: javascript json angularjs

我想知道使用AngularJS / JavaScript从/向另一个对象复制对象属性的最佳方法是什么

以下是我得到的Json对象:

{  
   "application":{  
      "number":"323-23-4231",
      "amount":"234.44",
      "ref_name":"Thomas Edison"
   },
   "borrower":{  
      "prefix":"Mr",
      "first_name":"Eric",
      "middle_name":"E",
      "last_name":"Schulz",
      "date_of_birth":"09/29/1975",
      "email_address":"myemail@HOTMAIL.COM",
      "phones":[  
         {  
            "number":"(555)555-5555",
            "type":"Mobile"
         }
      ]
   }
}

使用上面的Json对象,我希望新的JSON对象数据看起来像这样:

{  
   "number":"323-23-4231",
   "amount":"234.44",
   "ref_name":"Thomas Edison",
   "prefix":"Mr",
   "first_name":"Eric",
   "middle_name":"E",
   "last_name":"Schulz",
   "date_of_birth":"09/29/1975",
   "email_address":"myemail@HOTMAIL.COM",
   "phones":[  
      {  
         "number":"(555)555-5555",
         "type":"Mobile"
      }
   ]
}

1 个答案:

答案 0 :(得分:1)

如果你在一个名为oldObj的变量中有原始对象,你可以这样做(未经测试):

newObj = {}
newObj = angular.extend(newObj, oldObj.application)
newObj = angular.extend(newObj, oldObj.borrower)

有很多方法可以在不同的框架中将一个对象的属性复制到另一个对象。 Angular有内置的angular.extend,您可以阅读here

你甚至可以不使用任何花哨的方法来做到这一点:

newObj.number = oldObj.application.number
newObj.amount = oldObj.application.amount
newObj.ref_name = oldObj.application.ref_name
newObj.prefix = oldObj.borrower.prefix
...

但那有点傻:)