javascript - 如何将用户的多个输入存储到localStorage?

标签 javascript arrays json local-storage

所以我有一个输入字段,要求用户输入一个数字:

<label for="amount"><b>Amount</b></label>
<input type="text" placeholder="Enter Number" name="number" id="number" required>   

我想要做的是将其存储在 localStorage 中: 这是我的脚本:

var number = document.getElementById('number').value;
var aNumber = [];
aNumber.push(number);
localStorage.setItem('number',JSON.stringify(aNumber));

但是,该脚本可以工作,当用户输入新值时,它会覆盖旧值。因此始终只存储一个值。 我想要它,以便它能够存储所有值。

提前致谢。

最佳答案

它将覆盖,因为您总是创建一个新数组,而不是使用旧数组(如果存在)。您需要按如下方式更改代码:

var aNumber = !!localStorage.getItem('number') ? JSON.parse(localStorage.getItem('number')) : [];
var number = document.getElementById('number').value;
aNumber.push(number);
localStorage.setItem('number', JSON.stringify(aNumber));

上面的代码首先检查数组是否存在,如果存在,则代码使用相同的数组,否则创建一个新数组。

PS:由于重复执行 JSON.parseJSON.stringify 方法,随着数组中项目数量的增加,此代码最终会变得太慢。

关于javascript - 如何将用户的多个输入存储到localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49738205/

相关文章:

javascript - 将图像放在彼此之上时,CSS/JS 顶部和左侧会变形

javascript - 定义中尖括号中类名的用途是什么?

javascript - Highcharts - 如何在导出选项中单击自定义标签时获取特定图表 ID

javascript - 如何检查数组元素是否只包含换行符?

javascript - Node js如何处理文件响应

javascript - 在另一个函数中传递对象

c# - 如何将 JSON 数组存储到动态列表<>?

java - 如何在retrofit中调用动态嵌套json对象

javascript - 使用 Angular 从 Google Feed API 获取图像

python - 在 Django View 中渲染 JSONP