在JavaScript中以任意起始索引初始化数组

Initializing an array on arbitrary starting index in JavaScript

本文关键字:索引 初始化 数组 任意起 JavaScript      更新时间:2023-09-26

是否可能在JavaScript中初始化数组,例如,子索引1?

GenderArray: ['Female', 'Male', 'Other'],

我想让女性为1,男性为2,其他为3

简短的回答是不

这是不可能的,至少不是在所有的浏览器。例如,如果你这样做:

var a = [];
a[1] = "Female";
a[2] = "Male";
a[3] = "Other";

然后访问a[0],它将返回undefined。当你初始化数组时,JS引擎会为20个元素分配内存,这些元素从0开始索引。

你可以忽略第0个索引的元素,并使用你的数组,但请注意,在你的循环中,你需要指定开始索引为1,如:

for (var i = 1; i < a.length; i++) { ... }

还要注意数组的长度将是4,而不是你在这个特殊情况下期望的3

放一个假人:

GenderArray: [undefined, 'Female', 'Male', 'Other'],

如果您需要在数组中的任意位置使用splice(),如:

GenderArray = [];
GenderArray.splice(4, 3, 'Female', 'Male', 'Other');

这将使它们从位置4开始

使用JSON。我认为json是使用关联数组的最佳方式:

var myjsonobject = { 1: "Female", 2:"Male",3:"Other"}

然后这样调用:

 alert(myjsonobject[1]) //for female
 alert(myjsonobject[2]) //for male