2017-01-09 2 views
-3

Элемент массива исчезает, когда случай не выполняется. Я хочу, чтобы массив сохранил значение, которое было добавлено в предыдущем случае.Сохранение значения в массиве

Код:

var x=[]; 
var y=1; 

if (y===1){ 
    x.push([1,1]); 
    y+1; 
} 
if (y===2){ 
    console.log(x); //I want it to print [[1,1]] 
} 
+0

Что вы сделали для отладки кода? Что еще вопрос? –

+0

@FelixKling Я просто использовал код, чтобы показать пример того, что я имел в виду .-. –

+0

Откуда вы знаете, что массив «теряет» значение? Я не вижу, что вы проверяете «x», как только дело не выполняется ». Если вы положите 'console.log (x)' в самом конце кода, вы увидите, что 'x'' '[[1,1]]'. Насколько я вижу, проблем нет? Или я что-то не понимаю? –

ответ

2

Второй if состояние оценивается в false, как значение y является 1.

Заявление в первом блоке if, y+1 не изменит значение y. Чтобы изменить значение y, назначьте его y.

y = y + 1; 

Вы можете даже использовать, increment operators, ++y и y++ или shorthand assignment operatory += 1.

var x = []; 
 
var y = 1; 
 

 
if (y === 1) { 
 
    x.push([1, 1]); 
 
    y = y + 1; 
 
} 
 
if (y === 2) { 
 
    console.log(x); //I want it to print [[1,1]] 
 
}

+0

также 'y + = 1' :) – haxxxton

+1

@haxxxton True. Благодарю. Я обновил ответ. – Tushar

1

Вы должны увеличивать y должным образом. Использование приращения записи y++.

var x = []; 
var y = 1; 

if (y===1) { 
    x.push([1,1]); 
    y++; 
} 
if (y===2) { 
    console.log(x); //I want it to print [[1,1]] 
} 
0

Итак, х, конечно, содержит то, что вы положили в нем, однако, ваше console.log утверждение в блоке кода, который недостижим, так что вы не будете видеть его напечатанным на консоль.

Если вы хотите, чтобы он вводил кодовый блок с помощью инструкции console.log, вам необходимо изменить: y+1 - y=y+1;.

Если вы не хотите вводить кодовый блок с помощью оператора console.log, но хотите увидеть значение x, вам нужно добавить дополнительный оператор console.log за пределами блока кода (y===2).

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