2010-12-03 24 views
0

J'essaie d'obtenir une valeur à partir d'une clé stockée sur une variable chaîne proyNombre, mais chaque fois que je l'appelle via la méthode commune "myAssociativeArray.MyKey", elle obtient la variable 'proyNombre' comme clé, au lieu d'obtenir sa valeur et en le passant comme une clé.comment obtenir la valeur 'dynamiquement' d'un tableau associatif en javascript?

proyectos.each(function(index){ 
    var proyNombre = this.value; 

    if(!(proyNombre in myArray)){ // whenever the variable is undefined, define it 
     myArray[proyNombre] = horas[index].value-0 + minutos[index].value/60; 
    } 
    else{ 
     console.log(myArray.proyNombre); //This doesnt work, it tries to give me the value for the key 'proyNombre' instead of looking for the proyNombre variable 
     console.log(myArray.this.value); //doesnt work either 
    } 

}); 
+0

Notez que JavaScript n'a pas de tableaux associatifs - juste des objets. – alex

Répondre

2

Essayez:

console.log(myArray[proyNombre]); 

monTableau est en fait un objet en javascript. Vous pouvez accéder aux propriétés de l'objet avec object.propertyName ou object['propertyName']. Si votre variable proyNombre contenait le nom d'une propriété (ce qu'elle fait), vous pouvez utiliser le second formulaire, comme je l'ai fait ci-dessus. object.proyNombre est invalide - proyNombre est une variable. Vous ne pouvez pas faire par exemple:

var myObject = {}; 
myObject.test = 'test string'; 

var s = 'test'; 
console.log(myObject.s); // wrong!! 

mais vous pourriez faire:

console.log(myObject.test); 
console.log(myObject['test']); 
console.log(myObject[s]); 
+0

chaque fois que les 8 minutes pour le meilleur temps de réponse me permet –

1

Accédez simplement à la valeur avec myArray[proyNombre].

+0

merci à vous deux, j'ai donné la meilleure réponse à la première réponse, les deux vos solutions fonctionne. Merci beaucoup. –

1

Vous devez utiliser la même syntaxe que vous avez utilisée pour définir la valeur:

console.log(myArray[proyNombre]); 
+0

semble que vous avez copié votre réponse depuis sje397 –

+1

Nope, juste la plus simple des questions de programmation Javascript :) –

1

Vous faites bien dans la mission: myArray [proyNombre]. Vous pouvez utiliser la même méthode pour récupérer la variable.

Si vous changez:

console.log(myArray.proyNombre); 
console.log(myArray.this.value); 

à

console.log(myArray[proyNombre]); 
console.log(myArray[this.value]); 

Vous devriez obtenir la même valeur (la valeur de la clé représentée par la proyNombre variable) connecté deux fois. Il est vrai que Javascript n'a pas de tableaux associatifs mais les objets en Javascript peuvent être traités comme des tableaux associatifs lorsqu'ils accèdent à leurs membres.