Я передаю строку, которая выглядит примерно так: "John.Doe.100.Newbie-David.Miller.250.Veteran-" для функции SplitDatabase, которая соответствующим образом разделяет строку и присваивает значения объекту UserDataEntry. Затем объект UserDataEntry вводится в глобальный массив UserData, который должен хранить все пользовательские данные.
По какой-то причине часть UserData.push(UserDataEntry), по-видимому, перезаписывает предыдущие данные в массиве UserData. Предупреждение в 1-м цикле показывает правильные данные, когда они петли, но предупреждение во втором цикле внизу просто показывает последнюю запись снова и снова.
Я не уверен, почему это?
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);
}
}