オブジェクトのプロパティ名(キー)一覧を取得したい場合、Object.keysが使えるが数値で設定したキーも文字列で返される点に注意。
> o = {}; o[1] = 2; o[2] = 3
> Object.keys(o)
[ '1', '2' ]
そもそもo[1]と書いた場合でもプロパティは文字列に変換されて処理される。
> o[1]
2
> o['1']
2
該当する仕様は以下のあたり。
https://262.ecma-international.org/6.0/#sec-property-accessors-runtime-semantics-evaluation
https://262.ecma-international.org/6.0/#sec-topropertykey