Esto está en la primera página:

scoreSubmit() {
  var name = prompt("Unesi svoje ime:");
  var objekat = {
    "name": name,
    "score": score
  };
  var myJSON = JSON.parse(localStorage.getItem("textvalue"));
  myJSON[myJSON.length] = objekat;

  var sort = false;
  while (!sort) {
    sort = true;
    for (var i = 0; i < myJSON.length - 1; i++) {
      if (myJSON[i + 1].score > myJSON[i].score) {
        var temp = myJSON[i];
        myJSON[i] = myJSON[i + 1];
        myJSON[i + 1] = temp;
        sort = false;
      }
    }
  }
  localStorage.setItem("textvalue", JSON.stringify(objekat));
}

y este es el código de mi segunda página

  var myJSON=JSON.parse(localStorage.getItem("textvalue"));

  var bodycontent="";

  for(var i =0;i<myJSON.length;i++){
               bodycontent +="<tr>";
               bodyContent += "<td>" + (i + 1) + ".</td><td class='name'>" + myJSON[i].name + "</td><td>" + myJSON[i].score + "</td>";
               bodyContent += "</tr>";


   }
   document.getElementById("leaderboardBody").innerHTML =bodycontent;

pero por alguna razón, si los datos JSON no aparecen en la tabla. ¿Sabes dónde estoy fallando? ¡Cualquier ayuda me necesita mucho!

0
Stefan Tosic 4 nov. 2019 a las 12:57

1 respuesta

localStorage.setItem("textvalue", JSON.stringify(objekat));

se ve mal Seguramente pretendías escribir

localStorage.setItem("textvalue", JSON.stringify(myJSON));

?

De lo contrario, solo escribirá un valor de objeto en localstorage, y todo el propósito de recuperar una lista existente, agregarla y ordenarla no tiene sentido. Además, si intenta procesar un solo objeto utilizando su código de segunda página, no tendrá una longitud (porque no es una matriz) y, por lo tanto, el bucle no se ejecutará para crear el HTML.

0
ADyson 4 nov. 2019 a las 12:16