問題

私はハッシュとしてjavascriptオブジェクトでdoubleを知っていますが、私はキーを取得するための組み込み関数を見つけることができませんでした

 var h = {a:'b',c:'d'};
 

私は何かが欲しい

 var k = h.keys() ; // k = ['a','c'];
 

アイテムを繰り返し処理し、返す配列にキーを追加する関数を自分で書くのは簡単ですが、それを行うための標準的なクリーンな方法はありますか?

私はそれが私が逃した単純な組み込み関数でなければならないと感じていますが、私はそれを見つけることができません!

  ベストアンサー

現代のJavaScript(ECMAScript 5)には、この操作を実行する Object.keys という関数があります。

 var obj = { "a" : 1, "b" : 2, "c" : 3};
alert(Object.keys(obj)); // will output ["a", "b", "c"]
 

互換性の詳細は、ここで を見つけることができます。

Mozillaサイトには、下位互換性のためのスニペットもあります。

 if(!Object.keys) Object.keys = function(o){
   if (o !== Object(o))
      throw new TypeError('Object.keys called on non-object');
   var ret=[],p;
   for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
   return ret;
}
 

  同じタグがついた質問を見る

javascriptobjectkey