javascript - 如何在 JavaScript 中创建数组的数组并将数据填充到其中?

标签 javascript jquery arrays multidimensional-array

我想根据用户输入创建一个数组。我不知道输入的详细信息,所以基本上我只需要定义、初始化并用输入数据填充数组,以便稍后可以执行进一步的操作。

示例数组可能如下所示:

var input = ["1" : ["0": "Apple",
                    "1": "Orange"],
             "2" : ["0", "Cat",
                    "1", "Dog"],
             "4" : ["0", "Coffee"]
        ];

现在,我不知道如何定义、初始化和填充它,因为这不起作用:

    var input = [[]];
    $('.input').each(function(index, element) {
        var element_id = this.id;
        var element_value = $.trim(this.value);
        input[element_id][index] = element_value;
    });

有任何 JavaScript 专家可以提供帮助吗?

最佳答案

将代码更改为

var input = {};
$('.input').each(function(index, element) {
    var element_id = this.id;
    var element_value = $.trim(this.value);
    (input[element_id]||(input[element_id]={}))[index] = element_value;
});

你会得到类似的东西

    {"1" : {"0": "Apple",
                "1": "Orange"},
         "2" : {"0", "Cat",
                "1", "Dog"},
         "4" : {"0", "Coffee"}
    };

这不是数组中的数组,而是映射中的映射,这似乎更适合您。

现在,假设您确实想要数组,那么您需要使用整数而不是字符串作为键。那么你可以这样做

var input = [];
$('.input').each(function(index, element) {
    var element_id = parseInt(this.id,10);
    var element_value = parseInt($.trim(this.value),10);
    (input[element_id]||(input[element_id]=[]))[index] = element_value;
});

关于javascript - 如何在 JavaScript 中创建数组的数组并将数据填充到其中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995271/

相关文章:

javascript - 创建对象数组 Jquery

javascript - 测试用户是否可以在 html 页面上看到元素

c++ - 创建类成员函数

arrays - 如何在 Excel 中对数组应用逻辑或

javascript - 找到一个 <div> ,其中包含一个 <p> ,里面有给定的文本

C:检查一个数组只包含 0-7 范围内的数字

php - 如何让JS函数每次调用都从数据库中获取数据?

javascript - 客户端 Twitter 源

javascript - 限制下拉列表的范围

javascript - 我怎么能用javascript写这个短函数?