ワンライナーでネストされたオブジェクトを平坦化する
ネストされたオブジェクトを平坦化することはプログラミングでは一般的なタスクですが、最新の JavaScript ではさらに簡単です。 。以下は、スプレッド演算子と Object.assign を使用する 1 行のソリューションです。
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
仕組み:
このコードは、再帰関数 _ flatten を使用します。これは、ネストされたオブジェクトを走査し、1 つのプロパティのオブジェクトの配列を作成します。各プロパティ名は対応する値にマップされ、値が別のオブジェクトの場合、関数はそのオブジェクトに再帰的に入ります。
スプレッド演算子 (...) は、_ flatten によって作成されたオブジェクトの配列を平坦化するために使用されます。 。結果の配列は Object.assign に渡され、すべてのオブジェクトが 1 つのフラット化されたオブジェクトに結合されます。
入力と出力の例:
次のネストされたものを考えてみましょう。オブジェクト:
{ a: 2, b: { c: 3 } }
このオブジェクトで提供されたコードを実行すると、フラット化された結果が生成されます:
{ a: 2, c: 3 }
注:
このソリューションでは、 ES6 の機能のため、古い JavaScript 環境を使用している場合は調整が必要になる場合があります。
以上が1 行の JS コードでネストされたオブジェクトをフラット化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。