【发布时间】:2012-12-12 16:25:18
【问题描述】:
我想在每个第一个元素中创建一个带有索引号的二维数组。
(我之前的问题让我想到了这一点>)
这行得通:
$('#create_indexed_array').click(function() {
var new_array = [[9,9],[9,9],[9,9],[9,9],[9,9]];
for (var i = 0; i < 5; i++) {
new_array[i][0] = i;
}
alert(JSON.stringify(new_array));
});
但这不起作用:
$('#create_indexed_array').click(function() {
var new_array = new Array(new Array());
for (var i = 0; i < 2; i++) {
new_array[0][i] = ""; // create cols
}
for (var i = 1; i < 5; i++) {
new_array[i] = new_array[0]; // create rows
}
for (var i = 0; i < 5; i++) {
new_array[i][0] = i; // set index
}
alert(JSON.stringify(new_array));
});
编辑: 我的最终工作版本(到目前为止):
var myArray = [];
var rows = 5;
var cols = 2;
for (var i = 0; i < rows; i++) {
myArray [i] = [];
for (var j = 0; j < cols; j++) {
if (j==0) myArray [i][j] = i;
else myArray [i][j] = '';
}
}
alert(JSON.stringify(myArray));
(r) 主要是 jfriend ;)
还是不知道为什么不能在开头声明二维数组:myArray = [[]]
【问题讨论】:
-
此代码有效....不!并且用户名是 sasha...巧合?
-
后两个 i 不需要
var。声明将被提升到函数的顶部。 -
叫我男爵,jbabey --- 是的,重复,但我编辑了第一个(删除了原始问题),然后它似乎丢失了.. duno --- 是的,不需要第二个 var,但仅此而已不是问题吗?
-
@Bergi - 关闭在哪里?
-
@jfriend00:那个问题的标题里有“闭包”这个词,没有别的。不知道指的是什么。
标签: javascript arrays loops for-loop indexed