ホームページ  >  記事  >  ウェブフロントエンド  >  1 行のコードでネストされたオブジェクトをフラット化する方法

1 行のコードでネストされたオブジェクトをフラット化する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 13:05:17871ブラウズ

How to Flatten Nested Objects with a Single Line of Code?

一行でネストされたオブジェクトをフラット化する

ネストされたオブジェクトをフラット化するには、次の 1 行のソリューションを使用できます。

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

このワンライナーは、ネストされたプロパティを持つオブジェクトをフラット化し、1 レベルのプロパティを持つフラット オブジェクトに変換します。

仕組み:

  1. 再帰関数 _ flatten: この関数はオブジェクトを再帰的に走査し、ネストされたプロパティを平坦化します。
  2. スプレッド演算子 (ES6): _ flatten 関数内では、スプレッド演算子 ... は、オブジェクト内の各プロパティから 1 つのプロパティ オブジェクトの配列を作成するために使用されます ({[k]: o[k]})。
  3. 連結: オブジェクト.keys(o) 関数はプロパティ名の配列を返し、[].concat 関数は 1 つのプロパティ オブジェクトの配列を 1 つの配列に連結するために使用されます。
  4. Object.assign Function ( ES6): Object.assign 関数は、1 つのプロパティ オブジェクトのフラット化された配列を単一のフラット化されたオブジェクトに結合するために使用されます。

例:

サンプル オブジェクトの使用:

{
  a: 2,
  b: {
    c: 3
  }
}

1 行の解決策により、フラット化されたオブジェクトが生成されます:

{
  a: 2,
  c: 3
}

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。