ホームページ >ウェブフロントエンド >jsチュートリアル >「new Array(count)」で作成された配列で「map()」が未定義の値を返すのはなぜですか?

「new Array(count)」で作成された配列で「map()」が未定義の値を返すのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-07 07:00:12736ブラウズ

Why Does `map()` Return Undefined Values on Arrays Created with `new Array(count)`?

new Array(count) で作成された配列上のマップの動作を理解する

JavaScript 配列を使用する場合、特有の動作に注意する必要がありますnew 構文を使用して作成された配列によって表示されます。 Array(count).

以下のコード スニペットに示すように、new Array(count) で作成された疎配列 (未定義の要素を含む配列) に対して map() を呼び出すと、未定義の値の配列が生成されます。 >

var x = new Array(3);
x.map(function() { return 0; }); // [undefined, undefined, undefined]
対照的に、同じ長さの密な配列 (未定義の要素を含まない配列) に対して同じ操作を実行すると、次のように機能します。 Expected:

var y = [undefined, undefined, undefined];
y.map(function() { return 0; }); // [0, 0, 0]
この違いは、 new Array(count) が疎配列を作成するという事実に由来しており、これは要素にデフォルト値を割り当てないことを意味します。その結果、map() は未定義の要素に対して操作を実行できず、未定義の値の配列が作成されます。

この問題を解決するには、リテラル配列構文を使用して密な配列を作成するか、明示的にArray.prototype.fill().

などのメソッドを使用して、必要なデフォルト値を含むスパース配列

以上が「new Array(count)」で作成された配列で「map()」が未定義の値を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。