bash 可以在一行中创建一个稀疏数组
names=([0]="Bob" [1]="Peter" [20]="$USER" [21]="Big Bad John")
JavaScript 可以创建这样的稀疏数组吗?
bash 可以在一行中创建一个稀疏数组
names=([0]="Bob" [1]="Peter" [20]="$USER" [21]="Big Bad John")
JavaScript 可以创建这样的稀疏数组吗?
从技术上讲,JavaScript 有一个稀疏的数组字面量,但它很麻烦。
var x = [8,,,,4,,,,6]
我认为您不想使用它,因为您不想计算 [1] 和 [20] 之间的逗号。在这种情况下,对于 JavaScript 来说,使用对象而不是数组似乎更自然。
var names = {0: "Bob", 1: "Peter", 20: "$USER", 21: "Big Bad John"};
无论你是否引用整数,你都会得到相同的结果——它们被转换为字符串以用作对象中的键(基本上是一个哈希)。(哦,我在这里没有对你的 shell 变量做任何事情。)使用[]
. 如果您查找names[0]
它实际上与names['0']
这种情况相同。
但是,如果你想要一个实际的数组,一个可能的稀疏数组创建函数是:
function sparseArray() {
var array = [];
for (var i = 0; i < arguments.length; i += 2) {
var index = arguments[i];
var value = arguments[i + 1];
array[index] = value;
}
return array;
}
var names = sparseArray(0, "Bob", 1, "Peter", 20, "$USER", 21, "Big Bad John");
没有错误检查,因此省略最后一个参数将设置 21 ->undefined
并提供非整数键将其添加为对象属性...