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

The Object.keys method returns an array of object properties. You can index the array with numbers then.

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 回答