ホームページ > ウェブフロントエンド > jsチュートリアル > Array.prototype.fill() を使用するときにオブジェクトが一意であることを確認するにはどうすればよいですか?

Array.prototype.fill() を使用するときにオブジェクトが一意であることを確認するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-18 16:50:20
オリジナル
259 人が閲覧しました

How Can I Ensure Unique Objects When Using Array.prototype.fill()?

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() を使用して配列の各要素に新しいオブジェクトを作成するには、次のようにします。これらの手順:

  1. fill() を使用して配列に任意の値 (未定義など) を入力します。
  2. map() メソッドを使用して、目的のオブジェクト タイプの新しいインスタンスを含む新しい配列を作成します。
var arr = new Array(2).fill().map(u => ({}));
ログイン後にコピー

このアプローチでは、配列の各要素が他から分離された個別のオブジェクト:

arr[0].test = 'string';
console.log(arr[1].test); // undefined
ログイン後にコピー

以上がArray.prototype.fill() を使用するときにオブジェクトが一意であることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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