【问题标题】:Multiple variable declaration using loop javascript使用循环javascript声明多个变量
【发布时间】:2011-11-14 02:01:22
【问题描述】:

我试图创建一个包含 3 个固定字段的数组。
所以,像

var x0 = new Array(x,y,z);

现在问题是可以有多个数组,例如 x[],它们具有不同的值。
所以像

   var x1 = new Array(x,y,z); x2 = new Array(x,y,z);

我会将值传递给变量 x,y,z,例如 x0[0] = "test", x0[1] = "another",...
我需要创建一个可变数量的此类数组,所以假设我传递一个值说 10,它应该为我创建 10 个不同的数组。如何做到这一点,是否允许使用循环来创建变量?

有一种叫做多维数组的东西,但我不知道如何使用它。我试过了,但显然它非常不同,我不明白。 另外,我想声明一个对象,并将值传递给它的参数,并根据需要创建对象。这可能吗?哪种方法会更好?

还有其他方法吗?也许是最有效的东西?

【问题讨论】:

    标签: javascript arrays variables object


    【解决方案1】:

    只需创建一个数组数组:

    var myArrays = [];
    
    for(var i=0;i<something;i++){
        myArrays.push([x,y,z]);
    }
    

    那么,您将使用x[0][0],而不是x0[0]。

    注意,您不应使用new Array,而应使用[]。

    【讨论】:

    • 好的,我刚试过这个。 var myArrays = []; var x= "a"; var y="b"; var z="c"; for(var i=0;i&lt;4;i++){ myArrays.push([x,y,z]); } 我得到 x[0][0] 作为 a,这很好。但 x[0][1] 给出未定义。我如何得到 b?
    • 为我工作:jsfiddle.net/6YjHX x 只是“a”,数组是 myArrays,所以 myArrays[0][1]
    【解决方案2】:

    你是说

    var x  =[];
    x[0]=["x","y","z"];
    x[1]=["x","y","z"];
    x[2]=["x","y","z"];
    

    或

    function addArr(arr,newarr) {
      arr[arr.length]=newarr; // or arr.push(newarr);
    }
    var x  =[];
    for (var i=0;i<10;i++) {
      addArr(x,[i,i+1,i+2]);
    }
    

    【讨论】:

    • 第二个答案看起来是我想要的。会试试的。谢谢:)
    【解决方案3】:
    var n = 100; // number of x-arrays (x0, x1, ...)
    var allX = new Array(n); // array of length n
    
    for (var i=0; i<n; i++){
       allX[i] = [x,y,z]; // array with elements x, y, z
    }
    

    现在您可以访问例如第二个数组 (x1) 像:

    var x1 = allX[1];
    

    或第三个数组的第三个元素 (x2[2]) 如:

    var z = allX[2][2];
    

    编辑:参见this explanationnew Array()和[]之间数组声明的区别

    【讨论】:

    • 对不起,我有点天真,但看起来应该可以解决它。感谢您提供有关如何使用它的详细信息:)
    • 不客气!仅仅因为您是新来的:不要忘记接受答案并为您喜欢的任何一个点赞!祝你的代码好运。
    • @mplungjan :我检查了差异。我现在让第一个声明使用'new Array(n)' 的已知元素数量,因为它通常是fastest。子数组的元素是已知的,而不是元素的数量,因此无需调用 Array-constructor 并且 '[]' 将是 fastest 并且更具可读性。去吗?
    • 请阅读您发布的第一个链接中的完整帖子和链接。
    • 我做了(再次),并继续理解new Array(..)如果您事先知道元素的数量可以最快;否则应使用[]。我在这里看错了什么?
    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2021-08-29
    相关资源
    最近更新 更多