Make a shallow copy of the array:
a.slice().map(function (item, index) {
By the way, you should maybe use forEach
since you're not returning any value.
Or even better, have you considered using filter
instead?
var a = [{a: 1}, {a: 2}, {a: 3}].filter(function (item, index) {
console.log('call');
return index >= 1;
});