在一行中创建稀疏数组



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并给出一个非整数键,将其添加为对象属性…

相关内容

  • 没有找到相关文章

最新更新