ネストされた JavaScript オブジェクト内の特定のオブジェクトをラベルで検索する方法

Linda Hamilton
リリース: 2024-11-03 21:13:29
オリジナル
363 人が閲覧しました

How to Find a Specific Object within  a Nested JavaScript Object by Label?

ネストされた JavaScript オブジェクトの反復: ラベルによるオブジェクトの識別

ネストされた JavaScript オブジェクトを走査し、特定のラベルを持つオブジェクトを見つけるには、次の手順に従います。

再帰を使用した実装

ネストされたオブジェクトを再帰的に反復するには:

const iterate = (obj) => {
    Object.keys(obj).forEach(key => {
        console.log(`key: ${key}, value: ${obj[key]}`)

        if (typeof obj[key] === 'object' && obj[key] !== null) {
            iterate(obj[key])
        }
    })
}
iterate(obj); // obj is the main object to be traversed
ログイン後にコピー

非再帰アプローチを使用した実装 (2023 Update)

非再帰アプローチの場合:

const iterate = (obj) => {
    const stack = [obj];
    while (stack?.length > 0) {
        const currentObj = stack.pop();
        Object.keys(currentObj).forEach(key => {
            console.log(`key: ${key}, value: ${currentObj[key]}`);
            if (typeof currentObj[key] === 'object' && currentObj[key] !== null) {
                stack.push(currentObj[key]);
            }
        });
    }
};
ログイン後にコピー

オブジェクトの例

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

var cars = {
    label: 'Autos',
    subs: [
        {
            label: 'SUVs',
            subs: []
        },
        {
            label: 'Trucks',
            subs: [
                {
                    label: '2 Wheel Drive',
                    subs: []
                },
                {
                    label: '4 Wheel Drive',
                    subs: [
                        {
                            label: 'Ford',
                            subs: []
                        },
                        {
                            label: 'Chevrolet',
                            subs: []
                        }
                    ]
                }
            ]
        },
        {
            label: 'Sedan',
            subs: []
        }
    ]
};
ログイン後にコピー

識別子の使用

ラベル「」を持つオブジェクトを取得するには再帰的アプローチを使用して 4 Wheel Drive" を呼び出します:

iterate(cars);
ログイン後にコピー
ログイン後にコピー

非再帰的アプローチを使用して同じオブジェクトを取得するには、次のように呼び出します:

iterate(cars);
ログイン後にコピー
ログイン後にコピー

これにより、すべてのキーが記録されます。ネストされたオブジェクト内の値ペア (目的のオブジェクトを含む)。

以上がネストされた JavaScript オブジェクト内の特定のオブジェクトをラベルで検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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