2014-05-11 43 views
0

我需要为数组中的某些值添加变量。简单地说,我想这样做:在Javascript数组中使用运算符

var a = prompt("Enter either PNG or JPG"); 
var array = ["foo." + a, "bar." + a,"vid.oog"]; 

var x = prompt("Which image to display?"); 
document.getElementById('imge').src=array[x] 

它不让我;它只是返回“未定义”有没有办法做到这一点?我不想定义一堆变量,然后将这些变量粘贴到数组中。我也不能简单地在最后一行的末尾添加“+ a”,因为这会导致数组中的第三个元素为“vid.oogjpg”或“vid.oogpng”。

我知道在Python中你可以做到这一点。可悲的是,不是JS。

+1

为什么不创建前手的元素,然后将它们添加到阵列? – agconti

+0

应该按原样 - 例如:http://jsfiddle.net/2PVLK/2/ – McGarnagle

回答

0

只是声明你的数组是这样的:

var array = ["foo","bar","vid.oog"]; // leave them without extension it will be added later. 

,然后你可以这样做:

array.map(function(x){ 
    return x.indexOf('.') == -1 ? x + "." + a : x; 
}); 
+0

如果你解释它会很好。 – user3138189

+0

@ user3138189,它遍历每个项目,然后检查它是否包含扩展名,否则它将用户提供的扩展名添加到它。 –