2017-01-09 11 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

配列が値を「失う」ことをどう知っていますか?私はあなたが ''大文字と小文字が合わないと ''検査することはありません。あなたのコードの一番下に 'console.log(x)'を置くと、 'x'は' [[1,1]] 'になります。だから私が見る限り、問題はありませんか?または私は何かを誤解していますか? –

答えて

2

yの値が1であるように、第2 if条件がfalseに評価されます。

最初のifブロック内のステートメントy+1は、yの値を変更しません。 yの値を変更するには、yに割り当てます。あなたも使用することができます

y = y + 1; 

increment operators++yy++またはshorthand assignment operatory += 1。あなたが適切にyをインクリメントする必要が

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++を使用しています。

だから、
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ステートメントを追加する必要があります。

関連する問題