0

オブジェクトが次のように初期化されていると仮定します。

var myObj = {
   "key1":"val1",
   "key2":"val2",
   "key3":"val3",
   ...
};

このようなキー値を取得できますか?

var retrKey1 = myObj[0];
var retrKey2 = myObj[1];
var retrKey3 = myObj[2];
...

私が解決しようとしている問題は、このオブジェクトからランダムなキー値を選択する必要があることです。乱数の生成は問題ではありませんが、次のようになります。

  1. オブジェクト/マップ内のキーの数を取得するにはどうすればよいですか?
  2. 配列のような整数インデックスを使用してキー値を取得できますか?

そうでない場合、どのような選択肢がありますか?

4

2 に答える 2

4

Object.keys メソッドは、オブジェクト プロパティの配列を返します。次に、配列に数字でインデックスを付けることができます。

var myObj = {
 "key1":"val1",
 "key2":"val2",
 "key3":"val3",
 ...
};
var keys = Object.keys(myObj); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

于 2013-09-16T10:50:14.997 に答える
4

いいえ、プロパティ キー間に順序がないためです。順序付けられたキーが必要な場合は、配列を操作する必要があります。

次のような構造を定義できます。

var myObj = [
    {key:"key1", val:"val1"},
    ...
];
于 2013-09-16T10:43:19.760 に答える