闭环在for循环中。不同的尝试失败 [英] closure in for-loop > different tries failed

查看:119
本文介绍了闭环在for循环中。不同的尝试失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在每个第一个元素中创建一个具有索引号的二维数组。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆