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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 11:56:08642parcourir

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

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

Accéder aux objets et tableaux profondément imbriqués en JavaScript peut être une tâche fastidieuse. Pour simplifier cela, une solution a émergé qui exploite un chemin de chaîne pour récupérer directement des valeurs spécifiques.

Solution JavaScript pure

Une solution JavaScript pure appelée "Object.byString( )" permet l'extraction de valeurs imbriquées à l'aide d'une chaîne qui suit un chemin séparé par des points. Cette solution fonctionne comme suit :

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(someObj, 'part3[0].name');

Solution jQuery

jQuery propose une syntaxe plus simple pour accéder aux valeurs imbriquées :

$('someObj').data('part3[0].name');

Exemple Utilisation

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'
        }
    ]
};

En utilisant les chemins de chaîne fournis, nous pouvons accéder à des valeurs spécifiques comme suit :

var part1name = Object.byString(someObject, 'part1.name');
var part2quantity = Object.byString(someObject, 'part2.qty');
var part3name1 = Object.byString(someObject, 'part3[0].name');

Ces variables seront conservez maintenant les valeurs correspondantes de l'objet imbriqué.

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