3

这可能是一个非常快速的答案(或一个非常愚蠢的问题),但我正在尝试存储一个整数数组,以便稍后可以在随机时间由另一个函数在本地访问它们。

到目前为止我想到的方法(以及它们的缺陷):

  • HTML5 数据属性,即data-ids="1,2,3"(不能在这些属性中轻松存储数组)
  • HTML5 localStorage(只能存储一个字符串,而不是一个数组,并且必须转换)
  • 一个隐藏的输入,即<input type="hidden">(同样,不能存储数组,必须转换为字符串)

理想情况下,我希望能够使用类似array.push(value)等的语法将值推送到这个本地存储的数组中。

有没有一种我想念的简单方法来做到这一点,或者我会求助于黑客?该数组的最终用途将是与另一个整数数组进行比较,以查看是否有任何值匹配,如果匹配,则从第二个数组中删除索引(即它是一个数组过滤器)。

该数组不应存储在服务器上,因为客户端上的每个用户都不同。如果没有很好的方法来做到这一点,我可能会考虑以不同的方式实现功能。

4

4 回答 4

6

当然,您可以使用window.somevarname = [1,2,3]

或者,如果“其他地方”是指完全不同的页面加载,那么最好的办法是运行它JSON.stringify()并将其放入localStorage,然后再JSON.parse()取出。

于 2013-06-08T20:25:59.567 回答
1

只需在您的 html 头部分声明一个全局变量

<script type="text/javascript">
var MyGlobalVariable = [1,2,3];
// or window.MyGlobalVariable = [1,2,3];
</script>

现在您可以在整个页面中访问它。

于 2013-06-08T20:26:39.500 回答
0

在全局范围(或​​任何需要数组的地方)创建一个 javascript 变量,您可以通过它的名称访问它。

于 2013-06-08T20:26:22.440 回答
0

将数据存储在全局 java 脚本变量中是完全可以的,但决定因素是如何在页面之间导航。如果您打算进行整页刷新,Javascript 通常不是存储状态的好选择。但是,它适用于 Ajax UI,其中在加载较大页面上的子部分时保留全局变量

于 2013-06-08T20:29:57.573 回答