初始化一个索引分散在整数范围内的数组

Raj*_*pta 5 javascript jquery

如何在 JavaScript 中初始化一个字符串数组(大小<100 个项目),其索引分散在整个整数范围内,其中包含数据项。

如果我这样做:

array1 = ["string1","string2","string3","string4"];
Run Code Online (Sandbox Code Playgroud)

然后我得到长度为 4 的数组,索引范围为 0 到 3

但就我而言,我想保留自己的索引,以便该数组可以像高性能 int 字符串哈希表一样使用。

我最好寻找单个语句初始化。

数组的项目应该可以像这样访问:array1[23454]

评论更新

我只能将数组初始化为单个语句,因为动态准备的数组初始化字符串是从服务器端附加的,如下所示:var array = <string from server here>

SRe*_*ect 2

要创建具有一定数量索引的数组,您可以使用

// Creates an array with 12 indexes
var myArray = new Array(12);
Run Code Online (Sandbox Code Playgroud)

由于数组的工作方式,这在 javascript 中是不需要的。数组没有上限。如果您尝试引用数组中不存在的项目索引,undefined则会返回但不会引发错误

要创建具有指定索引的数组,您可以使用类似的方法array['index'] = value,但这会迫使您使用多个语句。Javascript 没有数组初始化器来允许您在单个语句中指定所有索引和值,尽管您可以创建一个函数来执行此操作

function indexArray(param) {
    var a = [], i;
    for (i=0; i<param.length; i+=1) {
        a[param[i].index] = param[i].value;
    }
    return a;
}

var myArray = indexArray([
    { index: 123456, value : "bananas" },
    { index: 12, value : "grapes" },
    { index: 564, value : "monkeys" }
]);
Run Code Online (Sandbox Code Playgroud)