Maison >interface Web >js tutoriel >Comment accéder aux objets et tableaux JavaScript imbriqués à l'aide de chemins de chaîne ?

Comment accéder aux objets et tableaux JavaScript imbriqués à l'aide de chemins de chaîne ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-26 14:22:16172parcourir

How to Access Nested JavaScript Objects and Arrays Using String Paths?

Accès aux objets et tableaux JavaScript par chemin de chaîne

Dans certains scénarios, les développeurs rencontrent souvent des structures de données avec une imbrication complexe et sont confrontés au défi d'accéder à des valeurs spécifiques en leur sein à l'aide de chaînes comme chemins.

Par exemple, considérons l'objet suivant :

var someObject = {
    'part1': {
        'name': 'Part 1',
        'size': '20',
        'qty': '50'
    },
    'part2': {
        'name': 'Part 2',
        'size': '15',
        'qty': '60'
    },
    'part3': [
        {
            'name': 'Part 3A',
            'size': '10',
            'qty': '20'
        },
        {
            'name': 'Part 3B',
            'size': '5',
            'qty': '20'
        },
        {
            'name': 'Part 3C',
            'size': '7.5',
            'qty': '20'
        }
    ]
};

Pour récupérer des valeurs imbriquées à l'aide chemins de chaînes, les techniques suivantes peuvent être utilisées :

JavaScript pur

À l'aide de la fonction utilitaire Object.byString, vous pouvez parcourir l'objet et accéder à des valeurs spécifiques :

Object.byString = function(o, s) {
    s = s.replace(/\[(\w+)\]/g, '.'); // convert indexes to properties
    s = s.replace(/^\./, '');           // strip a leading dot
    var a = s.split('.');
    for (var i = 0, n = a.length; i < n; ++i) {
        var k = a[i];
        if (k in o) {
            o = o[k];
        } else {
            return;
        }
    }
    return o;
};

Utilisation :

Object.byString(someObject, 'part3[0].name'); // "Part 3A"

jQuery

La méthode $.val() de jQuery peut également être utilisé pour parcourir les objets et les tableaux imbriqués :

$.val('part1.name', someObject); // "Part 1"
$.val('part2.qty', someObject); // 60
$.val('part3[0].name', someObject); // "Part 3A"

Les deux approches offrent des moyens pratiques d'accéder aux données dans les structures imbriquées par des chemins de chaînes, simplifiant ainsi la gestion et la manipulation de données complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn