在angularjs中,如何将一个对象复制到另一个对象中?

时间:2016-11-11 20:53:14

标签: angularjs

我正在寻找将一个动态对象扩展为另一个动态对象的方法。

让我们说我们有两个对象:

person = { 
    FirstName: "John", 
    LastName: "Doe", 
    IsStudent: false };

student = { 
    University: "MIT", 
    Faculty: "Computers", 
    IsStudent: true }

是否可以将学生对象复制到person对象中,以便我可以获得此结构的扩展人物对象:

person = { 
    FirstName: "John", 
    LastName: "Doe", 
    University: "MIT", 
    Faculty: "Computers", 
    IsStudent: true };

基本上,想法是更新人物对象的结构和状态,以包括来自学生对象的学生信息:

  • 学生中不存在的人的财产仍然存在
  • 学生中存在的人的财产被覆盖(如IsStudent财产)
  • 学生属性被添加到人,从而创建和扩展版本的人

重要提示:不要手动复制属性。

感谢。

2 个答案:

答案 0 :(得分:1)

我猜您正在寻找int SubtractColors( int color1, int color2 ) { int red = Math.Max( 0,( color1 >> 16 ) - ( color2 >> 16 ) ); int green = Math.Max( 0, ( ( color1 >> 8 ) & 0xFF ) - ( ( color2 >> 8 ) & 0xFF ) ); int blue = Math.Max( 0, ( color1 & 0xFF ) - ( color2 & 0xFF ) ); return ( red << 16 ) + ( green << 8 ) + blue; } 。请参阅documentation

extend

答案 1 :(得分:0)

对于你提到的功能,你可以单独使用JS,也可以使用ES6。

以下是Object.assign

上ES6的文档

let person = {
  FirstName: "John",
  LastName: "Doe",
  IsStudent: false
};

let student = {
  University: "MIT",
  Faculty: "Computers",
  IsStudent: true
};

console.log(Object.assign(person, student));
console.log(angular.extend(person, student));
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>