ホームページ > ウェブフロントエンド > jsチュートリアル > Array.fill(Array) が多次元配列で参照によってコピーを作成するのはなぜですか?

Array.fill(Array) が多次元配列で参照によってコピーを作成するのはなぜですか?

Barbara Streisand
リリース: 2024-11-29 09:30:11
オリジナル
874 人が閲覧しました

Why Does Array.fill(Array) Create Copies by Reference in Multidimensional Arrays?

Array.fill(Array) 参照によりコピーを作成します

Array.fill を使用して多次元配列を作成する場合は、次の点に注意することが重要です。内部配列は最初は参照によるコピーです。これは、1 つの内部配列に対する変更が、同じ Array オブジェクトを参照する他のすべての配列に反映されることを意味します。

例:

let m = Array(6).fill(Array(12).fill(0));

m[0][0] = 1;
console.log(m[1][0]); // Outputs 1 instead of 0
ログイン後にコピー

この問題に対処するには、Array.from を使用できます。 () Array.fill():

let m = Array.from({length: 6}, e => Array(12).fill(0));

m[0][0] = 1;
console.log(m[0][0]); // Expecting 1
console.log(m[0][1]); // Expecting 0
console.log(m[1][0]); // Expecting 0
ログイン後にコピー

Array.from() の代わりに、反復可能なオブジェクトのコピーが作成されます (この例ではこの場合、長さプロパティと新しい配列を返すマッピング関数を持つオブジェクト)。これにより、各内部配列が独立し、1 つの配列を変更しても他の配列に影響を与えないことが保証されます。

以上がArray.fill(Array) が多次元配列で参照によってコピーを作成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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