ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「map」メソッドが疎配列内の未定義要素をスキップするのはなぜですか?

JavaScript の「map」メソッドが疎配列内の未定義要素をスキップするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 01:10:10117ブラウズ

Why Does JavaScript's `map` Method Skip Undefined Elements in Sparse Arrays?

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 サイトの他の関連記事を参照してください。

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