Javascriptで任意の値を持つn個の配列を作成する
nove-b
January 22, 2023
ネットで見つけた方法は
どうやら下記コードで目的は達成できるらしい。
いったい、どうしてこうなるのか。
何が行われているのか?
new Array()
かっこの中に入れたLength分の配列を作成する。
つまりnew Array(10)であれば10個の値を含む配列を作成してくれる。
ちなみに値はundefinedになる
fill()
> fill() メソッドは、開始位置(既定値は 0)から終了位置(既定値は array.length)までのすべての要素を、静的な値に変更した配列を返します。
つまり先ほど作った10個のundefinedを持つ配列のundefinedを0に変更してくれるということ?
ということらしい。
この時点でタイトル(n個の任意の値を持つ配列を作成する)という目的は達成されている。
いったいmap()は何をしているのか?
map()
このコードでいえばmap()は配列の個数分取り出して0を入れるという、まったく生産性のない動きをしている。
つまり本タイトルという目的を達成するためであれば、不要以外の何物でもない。
n個の任意の値を持つ配列を作成する方法
ということで結論は、
に落ち着いた。
map()が必要な場合は?
ちなみにmap()が必要な時は、必要とする値がオブジェクトの時らしい。
javascript fillでオブジェクトの配列を作成した際の注意点
上に詳しく説明されているけど、どうやら指定した個数分参照渡しされているということ。 つまり、3つの配列を作り、その2番目のkeyを変更しようとしたところ、すべてのkeyが変更される結果になる。
そのため、mapで入れなおす必要がある。
念のためシンプルな個数分の配列で行ったけど、問題なかった。
オブジェクトの時だけことは起こるらしい。
Discussion in the ATmosphere