ホームページ > ウェブフロントエンド > jsチュートリアル > 「new Array(count)」で作成された配列で JavaScript の「map」メソッドが失敗するのはなぜですか?

「new Array(count)」で作成された配列で JavaScript の「map」メソッドが失敗するのはなぜですか?

Linda Hamilton
リリース: 2024-12-11 11:23:14
オリジナル
406 人が閲覧しました

Why Does JavaScript's `map` Method Fail on Arrays Created with `new Array(count)`?

配列の作成とマップ メソッドの動作について

マップ メソッドは、配列内の要素を変換するための JavaScript の強力なツールです。ただし、new Array(count) で作成された配列で使用すると、予期しない結果が発生する可能性があります。

配列の作成

新しい Array(count) 構文は、指定された数の要素を持つ配列を作成します。ただし、これらの要素はデフォルト値で初期化されないため、配列は未定義の値で埋められます。

map メソッドの動作

map メソッドは、配列内の各要素に関数を適用して返します。変更された要素を含む新しい配列。 new Array(count) で作成され、未定義の値が入力された配列の場合、JavaScript では未定義が真であると評価されないため、map メソッドは値を変更しません。

現実世界のシナリオ

次のコードを考えてみましょう。

var x = new Array(3);
console.log(x.map(function() { return 0; }));
ログイン後にコピー

このコードは、3 つの未定義要素を含む配列を作成します。マップ メソッドを適用しても要素は変更されず、出力は未定義の値を含む配列のままになります。

解決策

この問題を解決するには、配列に任意の値を入力します。 (未定義でも) Array.prototype.fill() を使用します。これにより、map メソッドに使用できる値が確実に含まれるようになります。

var x = new Array(3).fill(undefined);
console.log(x.map(function() { return 0; })); // [0, 0, 0]
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート