Array.fill() は値ではなく参照をコピーします
Array.fill() で 2 次元行列を初期化しようとすると、内部配列が参照を共有し、予期しない結果を引き起こす問題が発生する可能性があります。
これに対処するにはArray.from():
let m = Array.from({length: 6}, () => Array(12).fill(0)); m[0][0] = 1; console.log(m[0][0]); // Outputs 1, as expected console.log(m[1][0]); // Outputs 0, as intended
このアプローチでは、値によるコピーの内部配列を作成し、1 つの配列への変更が他の配列に影響を与えないようにすることができます。それぞれの内部配列は個別のオブジェクトであり、必要な独立性を提供します。
以上がArray.fill() が 2 次元配列に共有参照を作成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。