2017-01-09 74 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++yy++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真。謝謝。我已經更新了答案。 – 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

所以,X肯定包含了你放什麼東西在裏面,但是,你的console.log語句中的代碼是不可到達的塊,所以你不會看到它打印到控制檯。

如果您希望使用console.log語句輸入代碼塊,您需要將y+1更改爲y=y+1;

如果您不想使用console.log語句輸入代碼塊,但想要查看x的值,則需要在(y===2)代碼塊之外添加一個額外的console.log語句。