There can be multiple reasons to it. One of the common reason I've faced is due to a filter in the ng-repeat which returns a new array to work on the ng-repeat.
So check your ng-repeat expressions which have associated filters which is modifying the array.