Dans Javascript, comment puis-je convertir une chaîne de sorte qu'elle puisse être utilisée pour appeler une propriété?

Donc, j'ai un tableau associatif et les clés dans le tableau sont des propriétés d'un objet. Je souhaite boucler le tableau et, dans chaque interation, faire quelque chose comme ça:

Object.key 

Cela ne fonctionne cependant pas et se traduit par un retour indéfini plutôt que sur la valeur de la propriété.

Y a-t-il un moyen de faire cela?

Vous pouvez utiliser un pour … en boucle:

 for (var key in obj) { //key is a string containing the property name. if (!obj.hasOwnProperty(key)) continue; //Skip properties inherited from the prototype var value = obj[key]; } 

Vous devez utiliser l'accessoire de propriété de notation de parenthèse:

 var value = object[key]; 

Cet opérateur peut même évaluer des expressions, par exemple:

 var value = object[condition ? 'key1' : 'key2']; 

Plus d'informations:

  • Opérateurs membres

N'oubliez pas que les méthodes des objets Array , s'attendent à travailler avec des index numériques, vous pouvez ajouter n'importe quel nom de propriété, mais ce n'est pas recommandé , donc à l'intantiation d'un objet Array (c'est-à-dire var obj = []; ou var obj = new Array(); vous pouvez utiliser une instance d'objet simple (c'est-à-dire var obj = {} ou var obj = new Object();

Oui. En supposant que la key est une chaîne, essayez myObject[key]