可以像数组一样访问Javascript对象吗?

时间:2013-09-16 10:42:30

标签: javascript arrays object indexing

假设对象初始化如下:

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

我可以检索这样的键值吗?

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

我想解决的问题是我需要从这个对象中选择随机键值。生成随机数不是问题,但是:

  1. 如何检索对象/地图中的键数?
  2. 我可以使用数组中的整数索引来检索键值吗?
  3. 如果没有,我的选择是什么?

2 个答案:

答案 0 :(得分:4)

不,因为属性键之间没有排序。如果需要有序键,则需要使用数组。

您可以定义这样的结构:

var myObj = [
    {key:"key1", val:"val1"},
    ...
];

答案 1 :(得分: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