陣列物件的複製

2022-09-14 04:54:09 字數 1449 閱讀 7560

複製物件重新賦值不改變原物件

// 直接賦值

var obj1 = ;

var obj2 = obj1;

console.log(obj2); //

// 通過 object.assign() 這個屬性來進行複製

var obj = ;

var obj2 = object.assign({}, obj);

console.log(obj2); //

// 通過 for in 迴圈賦值

var obj1=, c: 0 }

var obj2={}

for( var key in obj1 )

console.log(obj2); // , c: 0 }

obj1.a = 2

obj1.b.c = 4

console.log(obj2); // , c: 0 }

//字串型別可修改 物件失敗

// 使用 object.assign() 方法複製物件

let obj1 = };

let obj2 = object.assign({}, obj1);

console.log(json.stringify(obj2)); // }

obj1.a = 1;

console.log(json.stringify(obj1)); // }

console.log(json.stringify(obj2)); // }

obj2.a = 2;

console.log(json.stringify(obj1)); // }

console.log(json.stringify(obj2)); // }

obj2.b.c = 3;

console.log(json.stringify(obj1)); // }

console.log(json.stringify(obj2)); // }

//得知字串型別可修改,物件失敗,以上的方法可以封裝成方法方便使用

function cloneobjectfn(obj)

var obj1=}

var obj2=clonebojectfn(obj2)//複製物件

obj2.b.c=3;//修改物件

console.log(obj1)//}

console.log(obj2)//}

es6特性 obj2 =

複製陣列重新賦值不改變原陣列

js中那些方法不改變原來的陣列物件

陣列物件的複製

public static void main string args int a2 a1 乙個陣列物件可以被兩個陣列物件同時引用 a2 0 6 system.out.println a1 0 6 這種現象叫做陣列賦值,可以發現如果這樣複製,陣列物件沒有隔離性,不小心就修改了 所以使用陣列的複製實現...

物件,陣列的深複製

如果物件的屬性值不是乙個物件的引用 object.assignfunction obj for var key in obj return newobj 2.即使物件的屬性是物件也可以 function deepcopy obj for var key in obj else return newo...

動態陣列類 物件的淺複製 物件深複製

1.將動態陣列封裝成類 include include using namespace std class point point int x,int y x x y y point int getx const int gety const void move int newx,int newy ...