如何在javascript中动态命名数组?

如何在javascript中动态命名数组?,javascript,Javascript,我还没有在网站上找到这个问题的答案。如何在javascript中动态命名数组?我需要生成大量数组,数组的数量在运行时确定。我试图发出单独的ajax请求,将单个数组发送到php脚本进行处理 我已经想到了这一点,但它不起作用: var 'objectArray'+id = []; 典型的方法是使用一组数组 var arrayOfArrays = []; arrayOfArrays[id] = []; // add sub array 您所要求的是一种动态作用域形式,JavaScript不支持它

我还没有在网站上找到这个问题的答案。如何在javascript中动态命名数组?我需要生成大量数组,数组的数量在运行时确定。我试图发出单独的ajax请求,将单个数组发送到php脚本进行处理

我已经想到了这一点,但它不起作用:

 var 'objectArray'+id = [];

典型的方法是使用一组数组

var arrayOfArrays = [];
arrayOfArrays[id] = []; // add sub array

您所要求的是一种动态作用域形式,JavaScript不支持它。您可以调用编译器并对其求值,但这是一个非常糟糕的主意。

典型的方法是使用数组数组

var arrayOfArrays = [];
arrayOfArrays[id] = []; // add sub array

您所要求的是一种动态作用域形式,JavaScript不支持它。您可以调用编译器并对其求值,但这是一个非常糟糕的主意。

典型的方法是使用数组数组

var arrayOfArrays = [];
arrayOfArrays[id] = []; // add sub array

您所要求的是一种动态作用域形式,JavaScript不支持它。您可以调用编译器并对其求值,但这是一个非常糟糕的主意。

典型的方法是使用数组数组

var arrayOfArrays = [];
arrayOfArrays[id] = []; // add sub array

您所要求的是一种动态作用域形式,JavaScript不支持它。您可以调用编译器并
eval
它,但这是一个非常糟糕的主意。

最简单的事情就是创建一个对象并在其中设置它们

var objectArrays = {};
objectArrays[id] = [];

要真正做到你想要的,方法是找到你当前所在的范围并在其中设置它或使用eval。

最简单的事情就是创建一个对象并在其中设置它们

var objectArrays = {};
objectArrays[id] = [];

要真正做到你想要的,方法是找到你当前所在的范围并在其中设置它或使用eval。

最简单的事情就是创建一个对象并在其中设置它们

var objectArrays = {};
objectArrays[id] = [];

要真正做到你想要的,方法是找到你当前所在的范围并在其中设置它或使用eval。

最简单的事情就是创建一个对象并在其中设置它们

var objectArrays = {};
objectArrays[id] = [];

按字面意思做您想要做的事情的方法是找到您当前所在的范围并在其中进行设置或使用eval。

一个好方法是使用建议的数组:

var objectArray = [];
objectArray[id] = [];
如果不想使用自己的数组,可以使用保存窗口全局变量的窗口对象,以便将其作为值存储在其中作为全局变量(但这不是一种好的做法):

最后,一种(在本例中是不好的)替代方法是使用
eval
(从某种意义上讲,这是在
JavaScript
的runtine处计算表达式的一种方法):


一个好方法是按照建议使用数组数组:

var objectArray = [];
objectArray[id] = [];
如果不想使用自己的数组,可以使用保存窗口全局变量的窗口对象,以便将其作为值存储在其中作为全局变量(但这不是一种好的做法):

最后,一种(在本例中是不好的)替代方法是使用
eval
(从某种意义上讲,这是在
JavaScript
的runtine处计算表达式的一种方法):


一个好方法是按照建议使用数组数组:

var objectArray = [];
objectArray[id] = [];
如果不想使用自己的数组,可以使用保存窗口全局变量的窗口对象,以便将其作为值存储在其中作为全局变量(但这不是一种好的做法):

最后,一种(在本例中是不好的)替代方法是使用
eval
(从某种意义上讲,这是在
JavaScript
的runtine处计算表达式的一种方法):


一个好方法是按照建议使用数组数组:

var objectArray = [];
objectArray[id] = [];
如果不想使用自己的数组,可以使用保存窗口全局变量的窗口对象,以便将其作为值存储在其中作为全局变量(但这不是一种好的做法):

最后,一种(在本例中是不好的)替代方法是使用
eval
(从某种意义上讲,这是在
JavaScript
的runtine处计算表达式的一种方法):



变量的范围是什么?如果它是全局的,您可以执行
window['objectArray'+id]=[]。我怀疑这比仅仅使用对象键更好。变量的范围是什么?如果它是全局的,您可以执行
window['objectArray'+id]=[]。我怀疑这比仅仅使用对象键更好。变量的范围是什么?如果它是全局的,您可以执行
window['objectArray'+id]=[]。我怀疑这比仅仅使用对象键更好。变量的范围是什么?如果它是全局的,您可以执行
window['objectArray'+id]=[]
。我怀疑这是一个比仅仅使用对象键更好的主意。在数组中使用人工键确实有一些错误,尽管它不会在Javascript中造成太多问题(如果内存使用得当,它可能会导致问题,但这不是数组的使用方式)。它可能是数字,但是像
[undefined x 1234,[],undefined x 5678,[]等]
这样的数组真是一团糟。因为它是
id
而不是
i
n
id
往往是一个
标识符
,该标识符在数据库中可能是递增的(或来自任何地方),但返回的项目不太可能是相邻的一组。@BenjaminGruenbaum,等等,你不是在没有正当理由的情况下在这里进行假设吗?我的假设是“我不知道
id
包含什么,尽管我认为上面的内容被称为
id
”,但你的假设是
I知道
id`包含什么,一组后续整数”。。。“老实说,我认为我的假设要明智得多。”本贾明鲁恩鲍姆首先,你的评论非常无礼,因为你指责我抄袭了内容。有些事我没有做。就这件事而言,直到我基本上写完我的答案,我才看你的答案。第二,我等着投反对票,直到我意识到你不会修复我公开指出的答案中的缺陷。最后,
map
仅在EC6中引入,