索引的Javascript数组索引

索引的Javascript数组索引,javascript,multidimensional-array,Javascript,Multidimensional Array,我有一个2D JavaScript数组 grid = [ [ a, b], [ c, d]] 要访问它的元素,我可以使用 grid[ i ] // that's [ a, b] or [ c, d] 作为子数组的一个元素,如何仅处理一个实例 编辑: 代码实际上来自一个three.js场景,其中每个元素由一个立方体表示,即数组是一个立方体网格 该程序设置为,当我单击其中一个多维数据集时,会触发一个事件以显示每个多维数据集的名称字符串。当我使用 grid [ i ], 每行

我有一个2D JavaScript数组

grid = [ [ a, b],

         [ c, d]]
要访问它的元素,我可以使用

grid[ i ] // that's [ a, b] or [ c, d]
作为子数组的一个元素,如何仅处理一个实例

编辑: 代码实际上来自一个three.js场景,其中每个元素由一个立方体表示,即数组是一个立方体网格

该程序设置为,当我单击其中一个多维数据集时,会触发一个事件以显示每个多维数据集的名称字符串。当我使用

grid [ i ],
每行返回适当的元素

[ a, b ] or  [ c, d].
所以为了得到每一行的单个元素,我认为它必须是

grid [ i ][ j ],
但是当我运行代码时,它总是返回未定义的,所以我认为语法是错误的…因此,最初的文章

请问我该怎么做才能得到一个有效的结果?

最简单的方法

var grid = [ [ 1, 2], [ 3, 4]]
var a = grid[0][0] // 1

多维索引数组的索引如下所示:

//grid = [ [ a, b], [ c, d]];
0: [  
  0: a,
  1: b
],
1: [
  0: c
  1: b
]
要访问网格数组的索引,可以通过调用grid[index]来选择它们。这将返回给定索引处的数组。 因此,当调用var row=grid[0]时,row将是一个带有[a,b]的数组。 反过来,可以通过相同的方式访问该行:行[0]将是a

要访问而不将其存储在两者之间,只需使用索引括号两次:

var value = grid[0][0];
// value = a.
var value2 = grid[1][0];
// value = c.
二维阵列网格=[[a,b],[c,d]]可以访问:

网格[0]=[a,b]; 网格[0][0]=a

如果要转储阵列,请执行以下操作:

for(var i=0;i<grid.length;i++){
   for(var j=0;j<grid[i].length;j++){
       console.log('grid[' + i + '][' + j + '] = ' + grid[i][j] );
   }
}
输出将是:

网格[0][0]=a

网格[0][1]=b

网格[1][0]=c


网格[1][1]=d

你可以网格[0][0]不,不是的,我读过那篇文章。给我们足够的代码来重现你的问题。我们猜不到你的bug。谢谢,我已经决定从回复开始,我得到了一个更整洁的代码布局。如果我仍然遇到任何问题,我将开始另一个线程。我想grid[i][j]是我一直在寻找的。不幸的是,由于某些原因,它总是返回未定义的。实际上,我正试图通过单击元素(它是一组框)来获取索引号/字符串值。我想我的grid[I][j]可以工作,但它返回的是未定义的。我一定是做错了什么……如果你觉得答案不是问题的答案,你的问题就很不清楚了。此外,你接受了一个与我写的答案几乎相同的答案,@marsh写的答案,但在第一个答案发布20分钟后回答。如果我们没有正确回答您的问题,那么现在标记为正确的答案怎么可能是正确的呢?您的问题似乎不是javascripts数组访问的问题,而是GUI=>代码连接的问题。编辑您的问题,以便我们能够真正回答,知道问题是什么,或者接受回答给定问题的答案,这三个当前答案都是如此。很抱歉造成混淆,我已按照您的建议编辑了问题。另外,我实际上认为“勾号”是一个“发现这个有用”的东西,所以我把所有答案都勾号了。我已经补偿了。