Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON数组中创建具有不断更改的键名的键值对_Javascript_Arrays_Json - Fatal编程技术网

Javascript 在JSON数组中创建具有不断更改的键名的键值对

Javascript 在JSON数组中创建具有不断更改的键名的键值对,javascript,arrays,json,Javascript,Arrays,Json,我正在努力找出如何完成我的项目所需的一段简单代码 我的问题是,我需要在数据存储数组中创建一个索引不断增加的键。 每次执行函数运行时,我都需要在数据存储中再次创建一个新的键值 键0、键1、键2等等。。。只有一个变化的数字的静态值 基本上:每次执行函数时,我都需要keyIndex增加1:keykeyIndex的键值 有没有办法做到这一点?如果是,那么我应该怎么做,浏览器兼容性如何?从我可怜的经历中我知道,这些东西往往需要在不同的浏览器中进行一些调整 对不起,如果这个问题让人困惑,我只是不知道从哪里开

我正在努力找出如何完成我的项目所需的一段简单代码

我的问题是,我需要在数据存储数组中创建一个索引不断增加的键。 每次执行函数运行时,我都需要在数据存储中再次创建一个新的键值

键0、键1、键2等等。。。只有一个变化的数字的静态值

基本上:每次执行函数时,我都需要keyIndex增加1:keykeyIndex的键值

有没有办法做到这一点?如果是,那么我应该怎么做,浏览器兼容性如何?从我可怜的经历中我知道,这些东西往往需要在不同的浏览器中进行一些调整

对不起,如果这个问题让人困惑,我只是不知道从哪里开始

var指数=0; var数据存储={ key0:['some data','some more data'] } 函数运行{ //一些无用的代码 //将键索引增加1。 keyIndex++; //问题是: dataStorage.key1='some value'; console.logJSON.stringifydataStorage+'\nKeyIndex:'+keyIndex; }
window.setIntervalrun,1000 您可以使用括号表示法而不是点表示法来使用变量添加/访问键:

var指数=0; var数据存储={ key0:['some data','some more data'] } 函数运行{ keyIndex++; 数据存储['key'+keyIndex]='some value'; console.logJSON.stringifydataStorage+'\nKeyIndex:'+keyIndex; } window.setIntervalrun,1000 如果dataStorage为空,我们可以从key0开始,否则我们可以提取dataStorage对象中的最后一个键,并通过增加末尾的数字来添加一个新键

这样,我们就不需要维护一个额外的变量keyIndex来污染全局命名空间:

让dataStorage={}; 函数运行{ const len=Object.keysdataStorage.length-1; 设newKey=; iflen>=0{ newKey=key++Object.keysdatastore[len].splitkey[1]+1; }否则{ newKey=key0; } dataStorage={…dataStorage,[newKey]:some value}; console.logJSON.stringifydataStorage; } 跑 跑
跑dataStorage['key'+keyIndex]我想它应该可以在所有常用的浏览器中使用,对吗?这已经被解决了几十次,甚至几百次了。你最好找到一个现有的好答案,并将其标记为重复,而不是用多余的信息造成污染…@FalsePrice是的,它确实有效。我的评论是针对@MrGeek的,而不是你。否则我会把它放在问题下,而不是他的答案;