1 行のコードで JavaScript のネストされたオブジェクトをフラット化するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-22 13:03:03
オリジナル
375 人が閲覧しました

How Do I Flatten Nested Objects in JavaScript with One Line of Code?

ワンライナーでネストされたオブジェクトをフラット化する

JavaScript では、ネストされたオブジェクトをフラット化するタスクが頻繁に発生します。この操作には、ネストされたレベルを持つ複雑なオブジェクトを単一レベルのオブジェクトに変換することが含まれます。これを実現するにはさまざまなアプローチがありますが、ここでは最新の JavaScript 機能を活用する 1 行のソリューションについて詳しく説明します。

提供されたスニペットは、Object.assign() メソッドを使用して、ネストされたオブジェクトを効率的にフラット化します。再帰関数 (_ flatten) を通じて作成された 1 つのプロパティ オブジェクトの配列を結合します。この関数は、入力オブジェクト内の各キーを走査し、値が別のオブジェクトの場合はそれ自体を呼び出し、それ以外の場合は単一のプロパティと値のペアを持つオブジェクトを作成します。

実装:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
ログイン後にコピー

例:

ネストされたオブジェクトを考えます:

{
  a:2,
  b: {
    c:3
  }
}
ログイン後にコピー

このオブジェクトをフラット化すると、次の結果が得られます:

{
  a:2,
  c:3
}
ログイン後にコピー

利点:

  • 簡潔さ: 単一行のコードでオブジェクトのフラット化を実現します。
  • 汎用性: 純粋な JavaScript と Underscore などの一般的なライブラリの両方に適応可能.
  • 柔軟性: 再帰関数 (_ flatten) を使用して、ネストされた構造を動的に処理します。

考慮事項:

  • ES6 互換性: Object.assign やスプレッド演算子などの最新の JavaScript 機能のサポートが必要です。
  • ゼロ反復: 再帰関数はすべてのパスを探索しますネストされたオブジェクトを同時に実行するため、大きなオブジェクトのパフォーマンスに影響を与える可能性があります。

以上が1 行のコードで JavaScript のネストされたオブジェクトをフラット化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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