ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript でオブジェクトの配列を効果的に複製するにはどうすればよいですか?

JavaScript でオブジェクトの配列を効果的に複製するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-18 15:21:10
オリジナル
784 人が閲覧しました

How to Effectively Clone Arrays of Objects in JavaScript?

JavaScript でのオブジェクトの配列の複製

配列の構造

オブジェクトの配列の複製時、配列内のオブジェクトの構造とそのオブジェクトの構造を考慮することが重要です。関係。オブジェクトが配列内の他のオブジェクトを参照する場合、浅いコピーは新しいオブジェクトを作成するのではなく、参照を複製するだけです。

利用可能なソリューション

いくつかのアプローチがあります。特定の要件に応じて、JavaScript でオブジェクトの配列のクローンを作成します。

1. StructuredClone (ES2021)

StructuredClone メソッドは、複雑なオブジェクトのクローンを作成するための最も最新かつ効率的な方法です。元の配列内の構造と関係を保持したディープ コピーを作成します。

const clonedArray = structuredClone(originalArray);
ログイン後にコピー

2. JSON.parse

オブジェクトが JSON にシリアル化できる場合は、JSON.stringify を使用してオブジェクトを文字列に変換し、JSON.parse を使用してオブジェクトを解析してオブジェクトに戻すことができます。この方法は、シリアル化不可能なオブジェクトには機能しません。

const clonedArray = JSON.parse(JSON.stringify(originalArray));
ログイン後にコピー

3. Spread 演算子と Array.map

浅いオブジェクトのクローン作成には、Array.map 内で Spread 演算子 ... を使用できます。このアプローチではオブジェクトが再作成されますが、新しい参照は作成されません。これは効率的であり、浅いオブジェクトにのみ適用できます。

const clonedArray = originalArray.map(obj => ({ ...obj }));
ログイン後にコピー

4. jQuery のディープ コピー

jQuery の extend メソッドは浅いコピーに使用できますが、ディープ コピーには extend(true, {},originalArray) が必要です。ただし、この方法では再帰の問題が発生する可能性があります。

パフォーマンスに関する考慮事項

クローン作成メソッドのパフォーマンスは、オブジェクトの複雑さと構造によって異なります。一般に、structuralClone とスプレッド オペレーターの方が効率的です。提供された付録のサンプル配列のベンチマーク結果は、スプレッド演算子が JSON.stringify よりも大幅に高速であり、浅いオブジェクトのクローン作成に最適であることを示しています。

結論

クローン作成方法の選択は、アプリケーションの特定の要件によって異なります。複雑なオブジェクト構造のディープクローン作成には、structuraldClone をお勧めします。シリアル化可能なオブジェクトの浅いクローン作成には、JSON.stringify またはスプレッド演算子のアプローチを使用できます。

以上がJavaScript でオブジェクトの配列を効果的に複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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