我想根据用户输入创建一个数组。我不知道输入的详细信息,所以基本上我只需要定义、初始化并用输入数据填充数组,以便稍后可以执行进一步的操作。
示例数组可能如下所示:
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/