闭环在for循环中。不同的尝试失败 [英] closure in for-loop > different tries failed
问题描述
我想在每个第一个元素中创建一个具有索引号的二维数组。
I want to create a 2-dimensional array with an index-number in each first element.
编辑:
thx很多到目前为止..
thx a lot so far..
@carl:我做了这么多的功能创建只是为了显示我做的尝试。
@carl: I did so much function creation just to show the kind of tries I did..
jonhopkins想法产生了这个:
jonhopkins idea gave rise to this:
这个工程:
$('#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));
});
推荐答案
JavaScript中没有二维数组只是数组对象,可能包含其他数组对象(还有其他任何东西)。 new Array(new Array());
不是你期望的。 Btw,您可以使用空数组文本 []
而不是显式地调用构造函数。
There are no two-dimensional arrays in JavaScript, there are just array objects that may contain other array objects (but also anything else). new Array(new Array());
does not what you expect. Btw, you might use an empty-array-literal []
instead of calling the constructor explicitly.
var new_array = [];
for (var i=0; i<5; i++) {
// create and add a new subarray explicitly:
new_array[i] = [];
// add a value to that subarray:
new_array[i][0] = i;
// add other values to the subarray:
new_array[i][1] = "";
}
// new_array now looks like this:
[[0, ""], [1, ""], [2, ""], [3, ""], [4, ""]]
// You might shorten the whole code by using stuffed literals for the sub arrays:
for (var new_array=[], i=0; i<5; i++)
new_array[i] = [i, ""];
这篇关于闭环在for循环中。不同的尝试失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!