Не меняется, т.к. а - это значение элемента массива. Но если бы это была ссылка на значение (на объект например), то менялось бы.
arr = [{a: 1}, {a: 2}, {a: 3}];
arr.forEach(a => {
a.a++;
})
console.log(arr) // [{a: 2}, {a: 3}, {a: 4}]
В таком случае да, значения объектов поменяются. Но если вы измените ссылку, то нифига
arr = [{a: 1}, {a: 2}, {a: 3}];
arr.forEach(a => {
a = { a: a.a+1 };
})
console.log(arr) // Тут все по старому
Также, можно поменять значение массива по ключу.
arr = [1,2,3]
arr.forEach((a, ind) => {
arr[ind]++;
})
console.log(arr) // [2,3,4]