使用本地存储对数组中的数据进行字符串化

问题描述 投票:0回答:1

我已经尝试过几次以使其正常工作,我正在制作一个排行榜,其文本功能输入可设置本地存储值。我无法使其与将键设置为数组一起使用,因此我可以对同一键具有多个值。

var userName = document.getElementById('navn');
var userAvg = document.getElementById('avg');
var userAmount = document.getElementById('amount');


function addData() {
    localStorage.setItem('userName', userName.value);
    localStorage.setItem('userAvg', userAvg.value);
    localStorage.setItem('userAmount', userAmount.value);
    var table = document.getElementById("myTable");
    var row = table.insertRow(4);
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    cell1.innerHTML = navn.value;
    cell2.innerHTML = avg.value;
    cell3.innerHTML = amount.value;
}
<html>
  <div id="board">
      <ul id="list"></ul>
      <br/> Navn
      <input type="text" id="navn" />
      <br/> Gennemsnitlig Promille
      <input type="text" id="avg" />
      <br/> Antal genstande i alt
      <input type="text" id="amount" />
      <br/>
      <br/>
      <button type="button" onclick="addData()">Tilføj Data </button>
      <table id="myTable">
          <tr>
              <th onclick="sortTable(0)">Navn</th>
              <th onclick="sortTable(1)">Gennemsnitlig Promille</th>
              <th onclick="sortTable(2)">Antal Genstande i alt</th>
          </tr>
      </table>
  </div>
</html>
javascript html leaderboard
1个回答
1
投票

当将数组存储在本地存储中时,您需要对其进行字符串化,而从本地存储中获取时,则需要再次解析JSON。

这里是一个例子:

//saving to local storage
localStorage.setItem("userName", JSON.stringify(userName.value));

//reading from local storage
var userName = JSON.parse(localStorage.getItem("userName"));

根据您的情况,您可以创建这样的对象:

let user = {
    userName: "...",
    userAvg: "...",
    userAmount: "..."
}

localStorage.setItem("user", JSON.stringify(user))保存。

user = JSON.parse(localStorage.getItem("user"))检索其内容。

© www.soinside.com 2019 - 2024. All rights reserved.