1. ホーム
  2. javascript

[解決済み] Javascriptでオブジェクトのキー名を取得する

2023-06-09 10:22:17

質問

フォローのキー名はどのように取得するのでしょうか?例:"button1" と "button2" が欲しいのですが?

var buttons = {
    button1: {
        text: 'Close',
        onclick: function(){

        }
    },
    button2: {
        text: 'Close2',
        onclick: function(){

        }
    }
}

var i;
for(i in buttons){
    if(buttons.hasOwnProperty(i)){
        alert(buttons[i].text);
    }
} 

を使ってみました。 .push() を使ってみましたが、これはうまくいきませんでした。

どのように解決するのですか?

これは、少し表現を修正した方が理解しやすいかもしれません。

var buttons = {
  foo: 'bar',
  fiz: 'buz'
};

for ( var property in buttons ) {
  console.log( property ); // Outputs: foo, fiz or fiz, foo
}

ここでは、オブジェクトのプロパティを反復していることに注意してください。 property を各プロパティへの参照として使用していることに注意してください。

MSDN によると for ( variable in [object | array ] ) について、次のように記述しています。

ループの各反復の前に、変数にはオブジェクトの次のプロパティ名または配列の次の要素インデックスが代入されます。そして、ループ内のどのステートメントでも、オブジェクトのプロパティや配列の要素を参照するためにそれを使用することができます。

オブジェクトのプロパティの順序は一定ではなく、配列のインデックスの順序とは異なり、変更可能であることにも注意してください。これは便利かもしれませんね。