2010-12-27 4 views
2

APE(Ajax Push Engine)と呼ばれるComet Push Engineを使用しています。リアルタイムイベントを受信するたびに、「raw」というjavascriptオブジェクトで受信します。だから、Javascript Object Access

生のオブジェクトが「場所」の値が含まれている場合たとえば、私は「raw.location」を印刷することができ、それは私に価値を与える場合、

alert(raw.location); 

は、だから私はcurrentSensorと呼ばれる別のオブジェクトを持っています、どのように私はプログラム的に行う

currentSensor.value

:これは(私の例では、それは文字列「場所」を含んでいるでしょう)このような値が含まれていますcurrentSensor.value変数を使用して 'raw'オブジェクトにアクセスしますか?その後、

alert(raw.subsensor); 

var subsensor = currentSensor.sensorKey; 

とをしかし、生のオブジェクトが「サブセンサ」その実際に「場所」と呼ばれるキーが含まれていないので、私は未定義得続ける:私はこれを試してみました。私はこれが理にかなってほしい!

ありがとうございます!

答えて

1

あなたが行く:あなたは変数の索引にアクセスする必要がある場合に

alert(raw[subsensor]); 

ドット構文はあなたを助けることはできません。配列アクセスメソッドを使用する必要があります。

注:ドットアクセス方式は構文的な砂糖に過ぎず、実際には必要ありませんが、コードの読みやすさには便利です。お楽しみ

"1,2,3"["split"](",")["join"]("|") 

+0

は皆さんありがとうございました!私はそれが最速だったので、私はこの1つに行くと思います。 –

+0

'最も早く'あなたはあなたが最も新しいものと最初に並べ替えるときに 'トップで? :) – Quentin

+0

右、最初に記載されていますが、あなたのアドバイスのすべてが参考になっていただきありがとうございます、私はそれらのそれぞれをupvoted –

5

ドット表記を使用する場合は、リテラルのプロパティ名を使用します。文字列を使用する場合は、角カッコ表記を使用します。

foo.bar === foo['bar']; 

文字列は変数にすることができます。このような

baz = 'bar'; 
foo.bar === foo[baz]; 
3

:ここ

console.log(raw[currentSensor.value]); 
関連する問題