I have a loop that goes through an array and removes some elements from it.
But since it removes the elements from the same array it's looping on, it creates some problems.
Here I have Players
from which I wanna remove a player2
Players = [];
Players.push('player1');
Players.push('player2');
Players.push('player2');
Players.push('player2');
Players.push('player3');
Players.push('player2');
Players.push('player2');
Players.push('player2');
function check() {
for (var i = 0; i < Players.length; i++) {
if (Players[i] == 'player2')
kick(Players[i])
};
}
function kick(player) {
for (var i = 0; i < Players.length; i++) {
if (player == Players[i]) {
Players.splice(i, 1);
break;
}
};
}
but
check();
console.info(util.inspect(Players));
outputs
[ 'player1', 'player3', 'player2', 'player2' ]
What could I do to correct this?