存储和检索100个元素的数组
storing and retrieving 100-element array
我正在使用Greasemonkey/Tampermonkey来访问页面,并根据当前页面上的内容更改100个元素的表
短期存储和数组操作工作得很好,但我想永久存储数据。我尝试过GM_getValue
/GM_setValue
, GM_SuperValue
, localStorage
和indexedDB
,但我显然错过了一些基本的东西。似乎没有什么允许我将数组写入永久存储,然后将其读回一个变量,在那里我可以访问每个元素,这样variablename[32]
实际上是表中的第32个元素(好吧,如果你从0开始计数,那么第33个元素,我这样做)。
在脚本运行时,我需要访问整个包含100个元素的表,因为我需要在页面本身输出部分或全部元素。在最基本的情况下,我有一个从0到99的for循环,每次打印出variablename[i]
的值。
我对任何方法都没有倾向,我只是想在Greasemonkey/Tampermonkey脚本中工作。
在脚本的顶部,我有这样的:
for (var i = 0; i <= 99; i++) {
currentData[i] = localStorage.getItem(currentData[i]);
}
上一节的目的是将100个条目读入currentData
数组。现在这对我来说不起作用,可能是因为我一开始就没有正确地存储东西。
在中间,在修改了其中一个元素之后,我想这样替换它:
localStorage.setItem(
currentData[specificElementToChange], differentStuff);
上面的目的是修改100行数据中的一行并永久存储它,所以下次读取顶部的代码时,它将取出所有100个条目,其中只有一个元素被上面的行改变了。
这是一般原则。
我不知道我正在做的事情是否因为Firefox/Chrome的一些安全问题而不起作用,或者如果我想做的事情(永久存储一个数组,每次我访问给定页面时,一个元素更改)是不可能的。
我使用variable[element]
格式访问数组是很重要的,但除此之外,任何我可以存储这些数据并简单地检索它的方式对我来说都很好。
我觉得你做错了。LocalStorage存储字符串,因此在LocalStorage中存储数组的最简单方法是将其字符串化为JSON并存储JSON。然后,在读取它时,将JSON解析回一个数组。
那么,要读取它,你可以这样做:
var currentData = JSON.parse(localStorage.getItem("currentData") || "[]");
保存你的数据,你可以这样做:
localStorage.setItem("currentData", JSON.stringify(currentData));
工作演示:http://jsfiddle.net/jfriend00/6g5s6k1L/
这样做时,currentData
是一个包含普通数组的变量(在您从LocalStorage读取数据之后)。您可以使用.push()
向它添加项目,使用数字索引读取项目,例如:
var lastItem = currentData[currentData.length - 1];
或者,用:
改变数组中的项currentData[0] = "newValue";
当然,它只是一个普通的数组,所以你可以对它使用任何数组方法
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 删除仅空格数组元素
- JavaScript闭包和返回数组元素