Maison > interface Web > js tutoriel > Comment puis-je convertir en toute sécurité une chaîne de notation par points JavaScript en une référence d'objet ?

Comment puis-je convertir en toute sécurité une chaîne de notation par points JavaScript en une référence d'objet ?

Linda Hamilton
Libérer: 2024-12-20 19:27:10
original
244 Les gens l'ont consulté

How Can I Safely Convert a JavaScript Dot Notation String to an Object Reference?

Conversion d'une chaîne de notation par points JavaScript en une référence d'objet

En JavaScript, vous pouvez rencontrer des scénarios dans lesquels vous devez convertir une chaîne de notation par points , tel que "a.b", dans une référence à une propriété imbriquée dans un objet. Cela peut être particulièrement utile lorsque vous travaillez avec des structures de données complexes ou des données provenant de sources externes.

Une solution simple consiste à utiliser la fonction eval() :

var obj = { a: { b: '1', c: '2' } };
eval('var val = obj.a.b');
console.log(val); // '1'
Copier après la connexion

Cependant, en utilisant eval( ) est généralement déconseillé en raison de problèmes de sécurité et de problèmes de performances potentiels.

Une approche plus fiable consiste à utiliser l'accès basé sur l'index en utilisant une combinaison de fractionnement et de réduire :

function index(obj, path) {
  return path.split('.').reduce((o, i) => o[i], obj);
}

var val = index(obj, 'a.b');
console.log(val); // '1'
Copier après la connexion

Cette fonction divise efficacement le chemin à chaque point ('.') et utilise la réduction pour accéder de manière itérative aux propriétés imbriquées dans l'objet.

En utilisant cette technique, vous pouvez convertissez en toute sécurité et efficacement les chaînes de notation par points en références d'objet.

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