2016-10-15 8 views
-1

私は正しい質問をしていますが、ここではそれが行くかどうかわかりません。私はAPIを叩いて、次のようなjavascriptオブジェクトを取得しています。javascriptオブジェクトの動的キーにアクセス

x: { 
    id: 1, 
    username: 'Ryan', 
    picture: 151 
} 

このオブジェクトをmyObj constに格納しています。 x内のデータにアクセスしたいのですが、問題はAPI xの変更名になるたびに発生します。 X内のオブジェクトキーは同じまま、時にはxは今Imは

myObj.x 

を試みるなど、Y、L、B、

であるが、xがyになると、私はそれを変更する必要があります代わりにmyObj.yに。この動的オブジェクト内のプロパティにはどうすればアクセスできますか?

SOLUTION:

myObj[Object.keys(myObj)[0]] 
+0

いつでも、x、y、などのキーが1つしかない場合は、myObj [Object.keys(myObj)[0]] –

+0

を実行することができます。 ..? – Redu

+1

著者は解決策を見つけたので、私はこの質問を議論の対象外としています。 –

答えて

0

あなただけのサブプロパティID

var obj = { 
    a: { 
     id: 1, 
     username: 'Ryan', 
     picture: 151 
    }, 
    b: { 
     ident: 2, 
     firstName: 'jim', 
     movie: 321 
    } 
}; 

var x = obj[Object.keys(obj).filter(item => obj[item].id)]; 
console.log(x); // { id: 1, username: 'Ryan', picture: 151 } 
0

つ以上のキーがある場合に返さの順序ので、Object.keys(myObj)[0]を使用しないでくださいが含まれているプロパティをテストする必要があります配列は実装に依存します。

代わりに、あなたはgetCurrentPropertyNameが何らかの形で所望の特性の現在の名前を返します

var x = getCurrentPropertyName(); // "x" 
// ... 
myObj[x]; 

のようなものを使用する必要があります。それを知る方法がない場合は、コードに深刻な問題があります。

関連する問題