2010-12-03 21 views
0

私は、文字列変数proyNombreに格納されたキーから値を取得しようとしていますが、私は「myAssociativeArray.MyKey」一般的な方法を経由して、それを呼び出すたび、それがキーとして変数「proyNombre」を取得する代わりに、その値を取得しますそれをキーとして渡します。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

注 - ちょうどオブジェクト。 – alex

答えて

2

試してみてください。

console.log(myArray[proyNombre]); 

myarrayのは、実際にJavaScriptでオブジェクトです。オブジェクトのプロパティには、object.propertyNameまたはobject['propertyName']でアクセスできます。変数proyNombreにプロパティの名前が含まれている場合は、上記のように2番目のフォームを使用できます。 object.proyNombreは無効です - proyNombreは変数です。

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

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

ていますが、その後行うことができます:あなたは、たとえば行うことはできません

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

最良の答えタイマの8分が私に –

1

は単にmyArray[proyNombre]で値にアクセスします。

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

をすることができたときには、あなたの両方に感謝し、私は拳1件の返信する、両方のあなたのソリューションの作品への最良の答えを与えました。どうもありがとう。 –

1

はあなたが値を設定するために使用したのと同じ構文を使用する必要があります。同じメソッドを使用して変数を取得することができます。

を変更した場合:あなたは、同じ値(変数proyNombreで表さキーの値)が2回記録を取得する必要

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

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

それはJavascriptがそのメンバーにアクセスするときに、連想配列のように扱うことができ、JavaScriptで連想配列が、オブジェクトを持っていないのは事実です。 JavaScriptが連想配列を持っていない

+0

あなたがsje397 –

+1

からあなたの答えをコピーしたようですね、Javascriptのプログラミングに関する質問のうち、ほんの一番簡単です:) –

1

あなたは右の割り当てでそれをやっている:myarrayの[proyNombre]

関連する問題