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

Код:

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]]
}
-3
Suhan Gui 9 Янв 2017 в 06:12

3 ответа

Лучший ответ

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

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

y = y + 1;

Вы даже можете использовать операторы приращения , ++y и y++ или оператор назначения сокращения y += 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]]
}
2
Tushar 9 Янв 2017 в 03:16

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

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

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

0
Angela 9 Янв 2017 в 03:20

Вам необходимо увеличить 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]]
}
1
akinjide 9 Янв 2017 в 03:16