Quiero que la puntuación del juego se almacene en usrObj junto a topScore en el almacenamiento local. Sin embargo, solo almacena la puntuación junto al nombre del usuario.
código js de index.html
<script> loadRankingTable(); window.onload = ()=> { //Check login if(sessionStorage.loggedInUser !== undefined){ window.localStorage.setItem(sessionStorage.loggedInUser, highscore); document.getElementById("Greeting").innerHTML = sessionStorage.loggedInUser; } } </script>prac.js
function register(){ let password1 = document.getElementById("PasswordInput").value let password2 = document.getElementById("PasswordInputConfirm").value let username = document.getElementById("Username").value let name = document.getElementById("NameInput").value; let password = document.getElementById("PasswordInput").value; let usrObj = { username: username, password: password, topScore: 0 } if (password1 == password2){ localStorage[name] = JSON.stringify(usrObj); document.getElementById("FeedbackPara").innerHTML= ""; } else{ document.getElementById("FeedbackPara").innerHTML= "Passwords don't match."; } }básicamente, en lugar de que el almacenamiento local almacene datos como este: "usuario, 200", quiero que sea así: "nombre de usuario: nombre de usuario, contraseña: contraseña, puntaje superior: 200"
Recupere el valor actual del almacenamiento local como JSON, actualice la puntuación y luego guárdela nuevamente.
loadRankingTable(); window.onload = () => { //Check login if (sessionStorage.loggedInUser !== undefined) { let oldData = localStorage.getItem(sessionStorage.loggedInUser); if (oldData) { oldData = JSON.parse(oldData); oldData.topScore = highscore; localStorage.setItem(sessionStorage.loggedInUser, JSON.stringify(oldData); } document.getElementById("Greeting").innerHTML = sessionStorage.loggedInUser; } }