在localstorage中存储对象数组并读取的方法
时间: 2023-09-10 20:01:42 浏览: 201
在localStorage中存储对象数组并读取的方法如下:
1. 存储对象数组:
首先,将对象数组转化为字符串,可以使用JSON.stringify()方法将对象数组转化为字符串形式。然后,使用localStorage.setItem()方法将该字符串存储到LocalStorage中,例如:
```
let myArray = [{name: "Tom", age: 25}, {name: "John", age: 30}];
let arrayString = JSON.stringify(myArray);
localStorage.setItem("myArray", arrayString);
```
2. 读取对象数组:
读取对象数组时,首先使用localStorage.getItem()方法获取存储在LocalStorage中的字符串。然后,使用JSON.parse()方法将字符串转化为对象数组,例如:
```
let arrayString = localStorage.getItem("myArray");
let myArray = JSON.parse(arrayString);
```
需要注意的是,LocalStorage中存储的数据都是以字符串的形式存储的,因此需要将对象数组转化为字符串进行存储,再读取时将字符串转化为对象数组。
另外,使用LocalStorage进行存储时需要遵循同源策略,即LocalStorage只能读取同源页面中存储的数据。
相关问题
在html运行的 JS 将function handIn() { var total = 0; //遍历答题卡和答案 for (var i = 0; i < answers.length; i++) { if (answers[i].toLowerCase() === keys[i]) { total = total + Number(p[i].score); } }} alert('你的得分是:' + total);的total储存到localStorage的一个数组,并且html点击一个查询按钮将从localStorage中获取数组并将每个total得分添加到html的得分的文本框中,把每次total得分的序号显示第几次文本框,html点击一个查询将的html和js代码,用简体中文
以下是实现的 HTML 代码:
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>得分查询</title>
</head>
<body>
<h1>得分查询</h1>
<button onclick="showScores()">查询</button>
<div id="scores"></div>
<script>
// 设置存储的键名为 "scores"
const scoresKey = "scores";
// 定义 handIn 函数
function handIn() {
var total = 0;
// 遍历答题卡和答案
for (var i = 0; i < answers.length; i++) {
if (answers[i].toLowerCase() === keys[i]) {
total = total + Number(p[i].score);
}
}
// 从 localStorage 中获取之前的得分数组,如果不存在则创建一个空数组
var scores = JSON.parse(localStorage.getItem(scoresKey)) || [];
// 将新的得分加入数组
scores.push(total);
// 将数组存储回 localStorage 中
localStorage.setItem(scoresKey, JSON.stringify(scores));
alert('你的得分是:' + total);
}
// 定义显示得分函数
function showScores() {
// 从 localStorage 中获取之前的得分数组,如果不存在则创建一个空数组
var scores = JSON.parse(localStorage.getItem(scoresKey)) || [];
// 获取得分显示区域的元素
var scoresDiv = document.getElementById("scores");
// 清空得分显示区域的内容
scoresDiv.innerHTML = "";
// 遍历得分数组,将每次得分添加到得分显示区域中
for (var i = 0; i < scores.length; i++) {
var scoreSpan = document.createElement("span");
scoreSpan.innerText = "第 " + (i+1) + " 次得分为:" + scores[i] + " 分。";
scoresDiv.appendChild(scoreSpan);
}
}
</script>
</body>
</html>
```
其中,`handIn` 函数会在用户提交答案时调用,将得分加入一个存储在 `localStorage` 中的数组中。`showScores` 函数会在用户点击查询按钮时调用,从 `localStorage` 中获取之前的得分数组,并将每次得分添加到 HTML 页面中显示。需要注意的是,由于 `localStorage` 中只能存储字符串类型的数据,所以在存储和读取数组时需要使用 `JSON.stringify` 和 `JSON.parse` 进行转换。
vue3里面localstorage存储数组怎么保存到列表
首先,你需要从 `localStorage` 中读取存储的数组,你可以使用 `JSON.parse()` 方法将存储的字符串转换为数组。然后,你可以将这个数组赋值给 Vue 组件中的一个数组数据,例如:
```javascript
// 从 localStorage 中读取存储的数组
const storedArray = JSON.parse(localStorage.getItem('myArray')) || [];
new Vue({
data() {
return {
myArray: storedArray
};
}
});
```
接下来,你可以使用 `v-for` 指令将数组数据渲染到列表中,例如:
```html
<ul>
<li v-for="item in myArray" :key="item.id">{{ item.name }}</li>
</ul>
```
当用户在应用程序中添加或删除数组中的项时,你需要更新 `localStorage` 中的存储。你可以使用 `JSON.stringify()` 方法将数组转换为字符串,并将其存储在 `localStorage` 中。例如:
```javascript
// 更新数组并将其存储在 localStorage 中
this.myArray.push({ id: 1, name: 'Item 1' });
localStorage.setItem('myArray', JSON.stringify(this.myArray));
```
阅读全文