2015-04-17 3 views
0
var array1 = new Array(4); 
var array2 = new Array(4); 
var array3 = new Array(4); 
var array4 = new Array(4); 
var array5 = new Array(4); 
var array6 = new Array(4); 
var array7 = new Array(4); 

for(var a = 1; a < 8; a++){ 
    array+ a = new Array(4); 
} 

Я хочу создать массив с циклом for, но переменные должны быть разными каждый раз. Итак, мой вопрос, если это возможно, и если да, то как?Можете ли вы использовать переменные в имени переменной в Javascript?

+6

Почему бы не использовать многомерный массив/объектов? – Justinas

+1

Дубликат: [http://stackoverflow.com/questions/5117127/use-dynamic-variable-names-in-javascript](http://stackoverflow.com/questions/5117127/use-dynamic-variable-names-in -javascript) – jmgross

+0

Вау, это было действительно глупо от меня, я застрял на этом как час. Спасибо, что ответили так быстро! –

ответ

2

Нет, вы не можете (нет, если вы не используете Eval(), которого вы не должны ...).

Как прокомментировал Justinas, вы можете использовать многомерный массив.

var array = []; 
array.push(new Array(4)); 
array.push(new Array(4)); 
array.push(new Array(4)); 
array.push(new Array(4)); 
array.push(new Array(4)); 
array.push(new Array(4)); 
array.push(new Array(4)); 

for(var a = 1; a < 8; a++){ 
    array[a] = new Array(4); 
} 
+0

'eval()' уверенно, или это то, чтобы остановить людей, использующих его, копируя/вставляя его, не останавливаясь, чтобы думать о том, что они делают :) –

+0

@JamesThorpe Я просто избегаю этого, как чума. Гораздо сложнее отлаживать прогнозы eval, и они подвержены угрозе безопасности. Позже в строке приложение может быть изменено, чтобы начать использовать пользовательский ввод для значения, а не 'new Array (4)', не принимая во внимание 'eval()'. Лучше всего избегать этого, когда можете. – Curt

+0

О, я полностью согласен - я просто делал (плохую) шутку об обложке этого в вашем ответе :) –

0

Вы можете сделать так:

var myArrays = {}; 
myArrays["arrA"] = new Array(5); 
myArrays["anotherArr"] = new Array(8); 
... 
Смежные вопросы