Ich übergebe eine Zeichenfolge, die etwa wie folgt aussieht: "John.Doe.100.Newbie-David.Miller.250.Veteran-" zu der SplitDatabase-Funktion, die die Zeichenfolge entsprechend aufteilt und ordnet die Werte für das UserDataEntry-Objekt. Das UserDataEntry-Objekt wird dann in das globale UserData-Array eingefügt, das alle Benutzerdaten speichern soll.Push überschreibt vorherige Daten im Array
Aus irgendeinem Grund überschreibt der UserData.push (UserDataEntry) Teil frühere Daten im Array UserData. Der Alarm in der ersten Schleife zeigt die korrekten Daten an, wenn er eine Schleife ausführt, aber die Warnung in der zweiten Schleife unten zeigt nur den letzten Datensatz immer wieder an.
Ich bin mir nicht sicher, warum das ist?
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);
}
}
löschen Sie das Array, bevor Sie neue Daten schreiben! – rach