ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「map」メソッドが疎配列内の未定義要素をスキップするのはなぜですか?
JavaScript での配列作成とマップ メソッドを理解する
新しい Array(count) 式を使用して配列を作成する場合、基本的にスパース配列。スパース配列には、値が明示的に割り当てられていないインデックスに「ホール」または未定義の要素が含まれています。この動作は、すべての要素の値が定義されている配列リテラル構文 ([1, 2, 3]) を使用して作成された配列とは異なります。
一方、map メソッドは変換関数を適用しようとします。配列の各要素に。ただし、疎配列に適用すると、map メソッドは未定義の要素をスキップし、定義された要素のみを変換します。これは、指定されたコード スニペットで観察された一見予期しない動作を説明しています。
問題の解決
この問題を解決するには、マップメソッド。 Array.prototype.fill() メソッドを使用すると、配列内のすべての要素にデフォルト値 (未定義など) を割り当てることができます。あるいは、map メソッドを条件ステートメントと組み合わせて、定義された要素のみを変換することもできます:
var x = new Array(3).fill(undefined); var y = x.map(function(e) { return e !== undefined ? 0 : 1; }); console.log(y); // [1, 1, 1]
以上がJavaScript の「map」メソッドが疎配列内の未定義要素をスキップするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。