[JavaScript]1;2 D配列の宣言と初期化


長い間解答していなかったアルゴリズムの問題を再解答しようとしたが、頭がリセットされた.
JavaScriptの配列宣言と初期化方法が思い出せないまで、私たちはもう一度勉強しました.
初期JavaScript配列宣言
const arr = []; // => Array(0) [ ]
ダイレクトイニシャル
const arr = [0, 0, 0, 0, 0];
// => Array(5) [0, 0, 0, 0, 0] 
繰り返し文で初期化
let arr = new Array(5);
for (let i = 0; i < arr.length ; i++) {
	arr[i] = 0;
}
// => Array(5) [0, 0, 0, 0, 0] 
JavaScriptの Array オブジェクト(関数)、new Array()が存在します.New Array()の最初のパラメータはアレイの長さを超えています. アレイは、特定の長さで作成できます.
const arr = new Array(5);
// => Array(5) []
new Array()のパラメータでは、 必要な初期値を渡す方法を使用して、作成と初期化を同時に行うことができますが、実際には 直接初期化と同様の方法で 制限があります.
const arr = new Array(0, 0, 0, 0, 0);
// => Array(5) [0, 0, 0, 0, 0]

幸いなことに、JavaScriptには配列を初期化する方法がいくつかあります。


Array.長さ5の配列from()を作成し、0に初期化
const arr = Array.from({length: 5}, () => 0);
// => Array(5) [0, 0, 0, 0, 0]
Array.from()の最初のパラメータ {length:必要な長さ}オブジェクトを2番目のパラメータとして使用 コールバック関数を渡して必要な値を返すことで、値が1の配列を作成することもできます.
const arr = Array.from({length: 5}, (v, i) => i);
// => Array(5) [0, 1, 2, 3, 4]
Array.fill() 利用する
const arr = new Array(5).fill(0);
// => Array(5) [0, 0, 0, 0, 0]
Array.fill()添付ファイルの説明
  • 配列の開始インデックスから終了インデックスまでの静的値は、
  • を満たす.
  • ES 6の埋め込み方法はfor文を使用する方法と性能に大きな違いはなく、コードは非常に簡潔です.したがって、通常 境遇 n/a.保護者 優先順位 方法.
  • new Array(N) 速度. 遅い. なぜなら 授業が終わる 同じように 方法 使用 もの その他 とても速いです.
  • let arr;
    (arr = []).length = 5;
    arr.fill(0);
    Array.apply() 利用する
    const arr = Array.apply(null, new Array(5)).map(Number.prototype.valueOf,0);
    // => Array(5) [0, 0, 0, 0, 0]
    それ以外にも,他の方法が存在すると考えられるが,一次元アレイの宣言と初期化方法のみをここに減らした.
    位置づけのきっかけとなった
    アルゴリズムの問題を解く前に、2 D配列を増分する必要があります.
  • JavaScript「配列内の配列」宣言
    JavaScriptによると、本物の2次元配列はないという.だからvar arr = [][];のようです. 1回 2 D 配列宣言 あり得ない.
    ただし、2 Dアレイなど、いくつかのテクニックで「アレイのアレイ」を作成できます.
  • 2 Dアレイを作成し、0に初期化
    const rows = 5;
    const columns = 5;
    
    const  arr = Array.from(new Array(columns), () => new Array(rows).fill(0))
    増分1の2 D配列複写を作成するには
    1. const arr1 = Array.from({ length: 5 }, (v, r)
                     => { return Array.from({ length: 5 }, (v, c)
                         => (r * 5) + (c + 1)) });
    2. const arr2 = Array.from(new Array(rows), ()
                     => new Array(columns).fill(1)).map((row, r) => row.map((v, c)
                        => (r * columns) + (c + 1)));
    (BEST)
    3. const arr3 = [...Array(rows)].map((v, r)
                     =>[...Array(columns)].map((v, c)
                        =>(r * columns) + (c + 1)));
    3つの方法はいずれも同じ結果を得ることができる.
    Array(5) [Array(5), Array(5), Array(5), Array(5), Array(5)]
    [
      0: (5) [1, 2, 3, 4, 5],
      1: (5) [6, 7, 8, 9, 10],
      2: (5) [11, 12, 13, 14, 15],
      3: (5) [16, 17, 18, 19, 20],
      4: (5) [21, 22, 23, 24, 25]
    ]
    length: 5
    「Records Is The Rule Of Memory」-カノン広告コピー-