Need copy of obj in array NOT reference...how?

In the code below, i create an object and stick it in an array, then I make a duplicate of that array. I loop though the duplicate and change the value of one of the props of the object in the duplicated array. Doing this however unintentionally changes the prop value of an object in the original array. I’m assuming that the objects in the duplicated array are mere references to the objects in the original array. Is this correct? And if so, how do i make unique copies of those objects in the original array, so that changes made to the objects in the new, duplicated array are exclusive to those objects?

I know that i could probably make a new object when duplicating the array, and then recreate each prop, assigning values from the original objects… but this is a simplified example. The project im working on has many props for each object, so, id rather just make copies if at all possible.


var testObj:Object = new Object();
testObj.prop1 = "hello";
//
var testArr:Array = new Array();
testArr.push(testObj);
//
var testArrCopy:Array;
testArrCopy = testArr.slice();
//
trace("Before:");
for (var i:Number = 0; i<testArr.length; i++) {
    trace("testArr*.prop1: "+testArr*.prop1); //traces "hello"
}
//
for (i=0; i<testArrCopy.length; i++) {
    testArrCopy*.prop1 = "poop";
}
//
trace("After:");
for (i=0; i<testArrCopy.length; i++) {
    trace("testArr*.prop1: "+testArr*.prop1); //traces "poop" ???
}