プロが教える店舗&オフィスのセキュリティ対策術

Java script初心者です。
調べても空(null)から、2次元配列の代入する情報がなかったので質問させてもらいます。

function myFunction() {
set_value=[];

for(i=0;i<10;i++){

set_value.unshift([i,i+1]);
console.log(set_value[i][1]);

}
}

空の配列に、2次元配列を1回1回代入できないですか?

結果は全て1で出力で不思議です。

私の予想・したい出力は、1日目はi+1なので1
次は2、次は3,4、5、6、7、、、、、のイメージなのですが

教えて!goo グレード

A 回答 (1件)

こんばんは



>2次元配列の代入する~~
結果的に何を得たいのかよくわかりませんけれど、ご提示の処理では、
set_value = [
[9, 10],
[8, 9],
[7, 8],
[6, 7],
[5, 6],
[4, 5],
[3, 4],
[2, 3],
[1, 2],
[0, 1]
];
と同等の配列が作成されます。

unshiftは配列の最初に追加する(=indexが全部一つずれる)ことになりますので、console出力時に添え字 iで参照している配列要素は、常に同じ要素(=[0, 1]の要素)になっています。
このため、出力が全て「1」になりますけれど、代入のループが完了してから、まとめて出力してみれば、上記のような内容になっていることを確認できると思います。
 console.log (set_value);

※ 後ろに追加してゆきたいのであれば、pushメソッドを使ってください。
 (上記と逆順の結果になります)
    • good
    • 0
この回答へのお礼

有難う御座います。
unshiftの意味を深く理解していなかったです。

お礼日時:2021/12/31 15:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング