1

「アドレス」フィールドの値を取得する必要がある次のオブジェクトがあります。

var south= {};
south.address = {
    "South Building" :{
        address: "7421 New York Avenue",
        address2: "",
        city: "Georgetown",
        state: "DC",
        zip: "10221",
        phone:"202.555.9999",
        fax: "202.555.6696"
    }
};

現在、次の方法でのみフィールドの名前を取得できます。

Object.keys(south.address["South Building"])

戻り値:["address", "address2", "city", "state", "zip", "phone", "fax"]

また Object.keys(south.address["South Building"])[0]

戻り値:"address"

「住所」の値を取得したい。誰にもアイデアはありますか?

4

2 に答える 2

0

私があなたに持っている本当の質問は、そのオブジェクトは変化しますか? 変更されない場合は、次のようにアドレス属性にアクセスできます。

south.address["South Building"].address

それが変更された場合 (変更"South Building"される可能性が最も高いと思います)、全体的な構造は同じですが、このように for ループで各「建物」のアドレスにアクセスします。

for(var building in south.address){
    var address = south.address[building].address;
    //do what you want with address here.
}

実際に内部オブジェクトの構造が変更された場合 (つまりaddress、保証された属性ではない場合)、次のように存在する場合は引き続きアクセスできます。

for(var building in south.address){
    if("address" in south.address[building]){
       var address = south.address[building].address;
       //do what you want with address here.
    }
}
于 2013-07-12T16:29:47.700 に答える
0

取得したキーを使用する必要があります。

var key = Object.keys(southland.address["SoCal Accounting"])[0];
var value = southland.address["SoCal Accounting"][key];

キーの配列については、次のようになります。

var keys = Object.keys(southland.address["SoCal Accounting"]);
for(var i = 0; i < keys.length; i++) {
    var key = keys[i];
    console.log(southland.address["SoCal Accounting"][key]);
}
于 2013-07-12T16:09:18.847 に答える