Sto passando una stringa che assomiglia a qualcosa: "John.Doe.100.Newbie-David.Miller.250.Veteran-" alla funzione SplitDatabase che suddivide la stringa in modo appropriato e assegna i valori dell'oggetto UserDataEntry. L'oggetto UserDataEntry viene quindi inserito nell'array UserData globale che dovrebbe memorizzare tutti i dati dell'utente.Push sovrascrive i dati precedenti nell'array
Per qualche motivo, la parte UserData.push (UserDataEntry) sembra sovrascrivere i dati precedenti nell'array UserData. L'avviso nel primo ciclo mostra i dati corretti mentre scorre, ma l'avviso nel secondo ciclo in basso mostra solo l'ultimo record più e più volte.
Non sono sicuro del motivo?
var UserData = [];
function SplitDatabase(result) {
var RawUsers = result.split('-');
var UserDataEntry = {};
for (var i = 0; i < (RawUsers.length - 1); i++) {
var tempUserData = RawUsers[i].split('.');
for (var x = 0; x < (tempUserData.length); x++) {
switch (x) {
case 0:
UserDataEntry.firstname = tempUserData[x];
break;
case 1:
UserDataEntry.lastname = tempUserData[x];
break;
case 2:
UserDataEntry.points = tempUserData[x];
break;
case 3:
UserDataEntry.rank = tempUserData[x];
UserData.push(UserDataEntry);
alert(UserData[i].firstname);
break;
}
}
}
for (var i = 0; i < (UserData.length); i++) {
alert(UserData[i].firstname);
}
}
chiaro array prima di scrivere nuovi dati! – rach