2014-05-11 2 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] 

Это не позволяет мне; он просто возвращает «undefined». Есть ли способ сделать это? Я не хочу определять кучу переменных, а затем вставлять эти переменные в массив. Я также не могу просто добавить «+ 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, он проходит через каждый элемент и затем проверяет, содержит ли он расширение, иначе он добавит к нему предоставленное пользователем расширение. –

Смежные вопросы