I am trying to remove items from arrays that are all the same. Interestingly, it works when my arrays are different. The following code works as intended, removing the Fireman from team1, the Pyromancer from team2, the Aronist from team3, and the Vigilante from team4.
var options = {};
options.characters = ["Fireman","Missionary","Vigilante","Corrupt Policeman","Suicide Bomber","Arsonist","Gunman","Pyromancer","Hypnotist","Picklock","Policeman","Child","Prostitute"];
this._team1Characters = options.characters.concat(["test1"]);
this._team2Characters = options.characters.concat(["test2"]);
this._team3Characters = options.characters.concat(["test3"]);
this._team4Characters = options.characters.concat(["test4"]);
var submissions = {};
submissions.character1 = "Fireman";
submissions.character2 = "Pyromancer";
submissions.character3 = "Arsonist";
submissions.character4 = "Vigilante";
var i = 5;
while(--i){
if(submissions["character"+i]){
this["_team"+i+"Characters"].splice( this["_team"+i+"Characters"].indexOf(submissions["character"+i]), 1 );
}
}
alert(this._team1Characters);
alert(this._team2Characters);
alert(this._team3Characters);
alert(this._team4Characters);
However, if the four arrays are the same, all arrays end up the same (all lack the Fireman, the Pyromancer, the Aronist and the Vigilante). This is the code causing the problem:
var options = {};
options.characters = ["Fireman","Missionary","Vigilante","Corrupt Policeman","Suicide Bomber","Arsonist","Gunman","Pyromancer","Hypnotist","Picklock","Policeman","Child","Prostitute"];
this._team1Characters = options.characters;
this._team2Characters = options.characters;
this._team3Characters = options.characters;
this._team4Characters = options.characters;
var submissions = {};
submissions.character1 = "Fireman";
submissions.character2 = "Pyromancer";
submissions.character3 = "Arsonist";
submissions.character4 = "Vigilante";
var i = 5;
while(--i){
if(submissions["character"+i]){
this["_team"+i+"Characters"].splice( this["_team"+i+"Characters"].indexOf(submissions["character"+i]), 1 );
}
}
alert(this._team1Characters);
alert(this._team2Characters);
alert(this._team3Characters);
alert(this._team4Characters);
What's the reason for this?