Array.prototype.fill(): オブジェクトを参照として渡す
Array.prototype.fill() メソッドは、次の場合に便利なユーティリティです。指定された値で配列を初期化します。ただし、配列にオブジェクトを埋める場合、オブジェクトは新しいインスタンスを作成するのではなく、参照として渡されます。この動作により、配列の各要素が一意のオブジェクトであることを確認する方法があるかどうかという疑問が生じます。
次の例を考えてみましょう:
var arr = new Array(2).fill({}); console.log(arr[0] === arr[1]); // true
この例では、2 つのオブジェクトが作成され、参照として arr[0] と arr[1] に渡されます。配列の 1 つの要素を変更すると、それらは同じオブジェクトであるため、他の要素にも影響します。
arr[0].test = 'string'; console.log(arr[1].test); // 'string'
Array.prototype.fill() を使用して配列の各要素に新しいオブジェクトを作成するには、次のようにします。これらの手順:
var arr = new Array(2).fill().map(u => ({}));
このアプローチでは、配列の各要素が他から分離された個別のオブジェクト:
arr[0].test = 'string'; console.log(arr[1].test); // undefined
以上がArray.prototype.fill() を使用するときにオブジェクトが一意であることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。