如何访问多维Javascript数组的元素

时间:2014-03-08 01:09:43

标签: javascript arrays

我有一个Java脚本数组如下: - 第一个元素是一个字符串 - 第二个元素是一个数组 - 这个的第一个元素是一个字符串 - 第二个元素是一个数组 ---这是一个字符串的第一个元素 ---第二个元素是一个数组      :      : 实际上,这会达到5级。

photoList = 
    [Photographs, [
                    [2000, [
                             [London, [pic1.jpg, pic2.jpg, pic3.jpg]],
                             [Rome,   [p1.jpg, p2.jpg, p3.jpg....]]
                           ]],
                    [2001, [
                             [Berlin, [x1.jpg, x2.jpg,....]],
                             [Munich, [y1.jpg, y2.jpg, y3.jpg,...]],
                             [Frankfurt, [z1.jpg, z2.jpg]]
                           ]]
                  ]
    ];

我知道所选照片的​​路径(并且索引值存储在数组“路径”中) 例[1] [0] [1] [2]是2000年 - >罗马 - > p3.jpg

知道这些索引值,我该如何访问p3? 在代码中,我形成了一个字符串变量:var index =“[1] [0] [1] [2]”。 现在我需要做一些事情:    photoList +指数 我尝试了eval(photoList + index),但这不起作用。 我也尝试使用一个循环,使用切片:

var elem = photoList;
for (var i=0; i<path.length; i++) {
  elem = elem.slice(path[i], path[i+1];
}

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

为什么不执行以下操作(前提是路径是索引数组,例如[1,0,1,2]):

var elem = photoList;
for (var i=0; i<path.length; i++) {
  elem = elem[path[i]];
}

答案 1 :(得分:0)

为了评估photoList + index,您需要将photoList作为字符串传递给eval,因此eval("photoList" + index)可以正常工作。