2012-03-30 4 views
0

Я пытаюсь для хранения значений в массиве с помощью javascript..but я получаю странные ошибки в javascript.below мой кодJavaScript, хранения значений в массиве

var a = 1; 
for(i=0;i<4;i++) 
{ 

var all = new Array(); 
all[i]=a; 
a++; 
} 

alert(all[1]); 
alert(all[2]); 
alert(all[3]); 

пожалуйста, проверьте код здесь: http://jsfiddle.net/D8Suq/

для всех [1] и всех [2] я получаю неопределенную ошибку..бат все [3] работает нормально ,,, путают. Один из них, пожалуйста, помогите мне

ответ

7

Вы переназначаете свой массив в каждой итерации цикла (которая удаляет все в нем), а не только перед целым циклом.

Это должно работать, как ожидалось:

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

alert(all[1]); 
alert(all[2]); 
alert(all[3]); 
2

Вы повторно инициализируете массив внутри for-loop, переписывая любые данные, которые вы ранее писали. Переместить new Array() (или лучше [], литерал массива) вне цикла

0

Вы воссоздание массива на каждую итерации. Попробуйте следующее:

var all = []; // Moved up, and replaced with bracket notation. 
var a = 1; 
for(i=0;i<4;i++) 
{ 
all[i]=a; 
a++; 
} 

alert(all[1]); 
alert(all[2]); 
alert(all[3]); 
0

Ваша проблема заключается в том, что вы восстанавливаете новый массив на каждой итерации цикла. Итак, в первый раз вы устанавливаете значение в этом массиве. Во второй раз вы переопределяете переменную all, чтобы быть совершенно новым массивом, который отменяет работу, выполненную вами на последней итерации.

Проще всего сделать, это просто переместить var all = new Array() и положить его перед вашей петлей.

0

Вы переопределяете свой массив внутри цикл for. Вы должны определить его снаружи.

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

alert(all[1]); 
alert(all[2]); 
alert(all[3]); 
0
var a = 1; 
var all = new Array(); 
for(i=0;i<4;i++) 
{ 


all[i]=a; 
a++; 
} 

alert(all[0]); 
alert(all[1]); 
alert(all[2] 
0

Вы должны поместить все Var = новый Array() за пределами цикла. Вы создаете новый все [] четыре раза.

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

alert(all[1]); 
alert(all[2]); 
alert(all[3]); 
0

Попробуйте некоторые вещи, как:

const Coin = [ 
    "Heads", 
    "Tails"]; 
Смежные вопросы