You are making a new independent array, but you are not making independent copies of the items that fill your arrays. You need to do something like:
function reverseArr(input) {
var ret = new Array;
for(var i = input.length-1; i >= 0; i--) {
ret.push({
positionx: input[i].positionx,
positiony: input[i].positiony,
index: input[i].index
});
}
return ret;
}
so that you are generating new objects (with the same properties) as well as the new array.