javascript - 在一行中创建稀疏数组

标签 javascript arrays sparse-array

Bash 可以在一行中创建一个稀疏数组

names=([0]="Bob" [1]="Peter" [20]="$USER" [21]="Big Bad John")

§ Creating Arrays

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 并提供一个非整数键将把它添加为一个对象属性......

关于javascript - 在一行中创建稀疏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222701/

相关文章:

javascript - 如果另一个 div 宽度达到其位置,如何将类添加到元素

javascript - 如何使用jquery防止用户在同一个单词中重复一个字符超过3次

javascript - 让用户手动对 Web 应用程序中的项目进行排序

ios - 正在从解析数据库检索数据

c - 用于稀疏、惰性、不可变数组的线程安全缓存

javascript - 下载当前用户时间作为文件名

arrays - 使用 sort_by 排序,nils 出现在前面

java - 将 Java 中的数组拆分为更小数组的最佳方法?

带有字符串键的Android SparseArray?

java - 无法在android中的稀疏数组末尾添加值