プログラマーが日常的に TypeScript/JavaScript 開発を行う場合、複雑な JavaScript オブジェクトを JSON.stringify を通じて JSON 文字列にシリアル化し、その後の特定の分析のためにローカルに保存する必要があることがよくあります。 ただし、JavaScript オブジェクト自体に循環参照が含まれている場合、JSON.stringify は正しく動作せず、次のエラー メッセージが表示されます。
解決策は、この Web サイトの次のコードを使用してグローバル キャッシュ配列を定義することです。シリアル化される JavaScript オブジェクトのプロパティが走査されるたびに、プロパティに対応する値がキャッシュ配列に格納されます。 トラバーサル中にキャッシュ配列に属性値がすでに存在することが判明した場合、循環参照が検出されたことを意味します。この場合、単に return してループを終了することができます。 var キャッシュ = []; var str = JSON.stringify(o, 関数(キー, 値) { if (typeof 値 === 'object' && 値 !== null) { (cache.indexOf(値) !== -1)の場合{ // 削除 return; } // すべての値を収集します cache.push(value); } 戻り値; }); cache = null; // ガベージコレクションを容易にするために変数をクリアします この方法を使用して、循環参照を持つ JavaScript オブジェクトを文字列にシリアル化することに成功しました。 これで、JSON.stringify 使用時に発生する循環参照問題の解決方法についての記事は終了です。JSON.stringify 循環参照の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Centos7.3 に mysql5.7.18 をインストールするための詳細なチュートリアル
>>: Linux カーネル デバイス ドライバー キャラクタ デバイス ドライバー ノート
目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...
1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...
ハイパーリンクは、Web サイト上のすべてのページがハイパーリンクで接続され、ページ間を移動できるた...
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...
ps コマンドを使用できます。プロセスの PID など、現在実行中のプロセスに関する関連情報を表示で...
Centos7 と Centos6 では、GRUB パスワードの設定手順に大きな違いがあります。これ...
Docker 公式ドキュメント: https://docs.docker.com/ Docker は...
1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...
ブラウザの互換性とは、スタイルの互換性 (CSS)、インタラクションの互換性 (JavaScript...
前回の記事「202 個の無料高品質 XHTML テンプレート (1)」に続き、123WORDPRES...
mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....
目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...
プロセス構造図Nginx はマルチプロセス構造です。マルチプロセス構造は、次のような Nginx の...
目次1. はじめに2. 自己増分ストレージの説明3つの自己付加価値修正メカニズム4. 自己評価を修正...