1. ホーム
  2. javascript

[解決済み] JavaScriptで配列を宣言する方法を教えてください。

2022-03-07 20:59:13

質問

JavaScriptを勉強しているところですが、配列を宣言する方法はいくつもあるようですね。

  1. var myArray = new Array()
  2. var myArray = new Array(3)
  3. var myArray = ["apples", "bananas", "oranges"]
  4. var myArray = [3]

その違いや、望ましい方法とは?

によると 本サイト は、次の2行が大きく異なっています。

var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10];          // creates an Array with 10 as the first element

ご覧のように、この2つの行は全く異なることを行っています。もし 複数の項目を追加したい場合、badArray は、以下のようになります。 Javascript は十分に賢いので、正しく初期化されます。 は、配列の初期化を行う際に、配列の数を指定するのではありません。 を追加することができます。

著者が言おうとしていることは Array(10) は正確に10個の要素を持つ配列を作成し [10] は、0番目の要素が10である不定長の配列を作成するのですか?または、これは何を意味するのでしょうか?

解決方法は?

望ましい方法は、常に角括弧付きのリテラル構文を使用することです。 Array 's. さらに Array はキーワードではないので、現実的な状況ではないものの、誰かが簡単に上書きしてしまう可能性があります。

function Array() { return []; }

alert(Array(1, 2, 3)); // An empty alert box

しかし、より大きな問題は、一貫性の問題です。コードをリファクタリングする人が、この関数に出くわすかもしれません。

function fetchValue(n) {
    var arr = new Array(1, 2, 3);

    return arr[n];
}

結局のところ fetchValue(0) を返すので、プログラマは他の要素を削除し、コードを壊してしまいました。 undefined :

var arr = new Array(1);