Tôi đang chuyển một chuỗi trông giống như sau: "John.Doe.100.Newbie-David.Miller.250.Veteran-" vào hàm SplitDatabase tách chuỗi thích hợp và gán các giá trị cho đối tượng UserDataEntry. Đối tượng UserDataEntry sau đó được đẩy vào mảng UserData toàn cục được cho là lưu trữ tất cả dữ liệu người dùng.Đẩy ghi đè dữ liệu trước đó trong mảng
Vì một số lý do, phần UserData.push (UserDataEntry) dường như ghi đè dữ liệu trước đó trong mảng UserData. Cảnh báo trong vòng lặp đầu tiên cho thấy dữ liệu chính xác như vòng lặp, nhưng cảnh báo trong vòng lặp thứ hai ở phía dưới chỉ hiển thị bản ghi cuối cùng hơn và hơn nữa.
Tôi không biết tại sao điều này là?
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);
}
}
xóa mảng trước khi ghi dữ liệu mới! – rach