「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 複雑なオブジェクトの階層プロパティ リストを再帰的に構築するにはどうすればよいですか?

複雑なオブジェクトの階層プロパティ リストを再帰的に構築するにはどうすればよいですか?

2024 年 11 月 2 日に公開
ブラウズ:198

How can I recursively construct a hierarchical property list of a complex object?

再帰的プロパティ リストの構築

複雑なオブジェクトを走査してそのプロパティの階層リストを抽出するには、再帰関数の使用を検討してください。この手法は、オブジェクトの構造内のネストされた関係を効果的にキャプチャします。

ネストされたプロパティを備えたサンプル オブジェクトは、その好例として機能します。

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}

必要なプロパティ キーのリストを階層的に構築するには、次のような再帰関数を使用できます。

function iterate(obj, stack) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property], stack   '.'   property);
            } else {
                console.log(property   "   "   obj[property]);
                $('#output').append($("
").text(stack '.' property)) } } } } iterate(object, '')

この関数は、最初のオブジェクトと空のスタックから開始して再帰的に動作します。オブジェクトを探索するときに、各プロパティへの階層パスを表すスタック文字列を構築します。

  • プリミティブ タイプのプロパティの場合、関数はプロパティ キーとその値をログに記録します。
  • Forネストされたオブジェクトの場合、関数はそれ自体を再帰的に呼び出し、ネストされたオブジェクトを渡し、プロパティ キーをスタック文字列に追加します。

結果は、元のオブジェクトの階層構造をキャプチャしたプロパティ キーのリストになります。 .

このソリューションは、再帰とプロパティの反復を効果的に統合し、オブジェクト プロパティの階層リストを構築するための包括的なアプローチを提供します。

リリースステートメント この記事は次の場所に転載されています: 1729405459 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3