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

Can Javascript objects be accessed like arrays?

本文关键字:一样 访问 对象 数组 Javascript      更新时间:2023-09-26

假设一个对象初始化如下:

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

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

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

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

  1. 如何检索对象/映射中的键数?
  2. 我可以像在数组中那样使用整数索引检索键值吗?

如果没有,我有什么选择?

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

否,因为属性键之间没有排序。如果你想要有序的键,你需要使用数组。

你可以定义一个这样的结构:

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