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
Libérer: 2024-12-23 11:56:08
original
707 Les gens l'ont consulté

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;
}
Copier après la connexion

Utilisation :

Object.byString(someObj, 'part3[0].name');
Copier après la connexion

Solution jQuery

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

$('someObj').data('part3[0].name');
Copier après la connexion

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'
        }
    ]
};
Copier après la connexion

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');
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal