問題の理解
JavaScript アプリケーションでは複雑なデータ構造に遭遇することがよくあります。これらの構造はオブジェクトが深くネストされている場合があるため、直接操作したり処理したりすることが困難になります。一般的な操作の 1 つは、これらのオブジェクトをフラット化し、すべてのプロパティが最上位にあるより単純な構造に変換することです。
このブログでは、深くネストされたオブジェクトを効果的に平坦化する JavaScript コード スニペットについて詳しく説明します。コードを 1 行ずつ分解して、そのロジックと機能を説明します。
コードの内訳
let user = { name : 'Chiranjit', address : { personal : { city: 'Kolkata', state: 'West Bengal' }, office : { city: 'Bengaluru', state: 'Karnataka', area: { landmark:'Waterside', post: 433101 } } } } var finalObj = {} const flatObjFn = (obj, parent) => { for(let key in obj){ if(typeof obj[key] === 'object'){ flatObjFn(obj[key], parent '_' key) }else{ finalObj[parent '_' key] = obj[key] } } } flatObjFn(user, 'user'); console.log(finalObj);
一行ずつの説明
出力オブジェクトの初期化:
平坦化関数の定義:
オブジェクト プロパティの反復処理:
ネストされたオブジェクトの処理:
プリミティブ値の処理:
平坦化関数の呼び出し:
フラット化されたオブジェクトのログ記録:
仕組みは?
flatObjFn 関数はオブジェクトを再帰的に走査し、ネストされた構造をフラットなオブジェクトに分解します。親パラメーターはオブジェクト階層を追跡し、関数が出力オブジェクトに意味のあるプロパティ名を作成できるようにします。
Twitter または LinkedIn でつながりましょう
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3