创建具有大索引的JavaScript数组的好方法是什么?

jef*_*eff 0 javascript arrays performance

我正在创建一个Web应用程序,其中用户从PHP获取数据,并且数据由MySQL行组成,因此我想将已使用的数据保存在全局变量中,类似于缓冲区,以防止额外的AJAX请求.

我现在正在这样做:

window.ray = []; // global variable
$(function(){
   data = getDataWithAjax(idToSearch);
   window.ray[data.id] = data.text;
});
Run Code Online (Sandbox Code Playgroud)

但是当id很大时,现在就说10,window.ray变成这样:

,,,,,,,,42
Run Code Online (Sandbox Code Playgroud)

所以它包含9个不必要的点.或者是吗?它只在我做的时候可见console.log(window.ray);

如果这是低效的,我想找到像PHP这样的方式,我只能分配我想要的索引,如:

$array['420'] = "abc";
$array['999'] = "xyz";
Run Code Online (Sandbox Code Playgroud)

我目前的方式与PHP一样高效,还是实际上包含不必要的内存点?

谢谢你的帮助 !

jfr*_*d00 5

使用对象而不是数组.该对象将允许您使用id作为键,并且对于非顺序id值更有效.

window.ray = {}; // global variable
$(function(){
   data = getDataWithAjax(idToSearch);
   window.ray[data.id] = data.text;
});
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过id访问任何元素:

var text = window.ray[myId];
Run Code Online (Sandbox Code Playgroud)