【问题标题】:List of arrays in JavascriptJavascript中的数组列表
【发布时间】:2016-11-06 15:19:47
【问题描述】:

我正在尝试在 JAVASCRIPT 中创建一个数组列表,但我的程序没有达到我的预期。

我想制作一个这样的数组列表:

var myListofArrays;

var firstArray = [1,2,3,4,5,6];
var secondArray = [6,5,4,3,2,1];
var thirdArray = [1,1,1];

我想在 myListArray 中添加这些数组,最终得到类似的结果:

myListofArrays[0] = [1,2,3,4,5,6];
myListofArrays[1] = [6,5,4,3,2,1];
myListofArrays[2] = [1,1,1];

有人知道怎么做吗?

非常感谢!

【问题讨论】:

  • myListOfArraysundefined。使用= [] 对其进行初始化。或者只是在一个嵌套文字中完成所有操作var myListOfArrays = [ [1,2,3,4,5,6], [6,5,4,3,2,1], [1,1,1] ];
  • 还应该通过查看浏览器控制台中抛出的错误看到它是未定义的......那里有很大的线索

标签: javascript arrays arraylist


【解决方案1】:

起点:

var firstArray = [1,2,3,4,5,6];
var secondArray = [6,5,4,3,2,1];
var thirdArray = [1,1,1];

你只需要创建一个新的数组对象:

var myListOfArrays = [];

然后,将所有需要的数组插入到新数组中:

mylistOfArrays.push(firstArray);
mylistOfArrays.push(secondArray);
mylistOfArrays.push(thirdArray);

使用 push() 方法将数组对象添加到新数组的末尾。此方法还返回新的长度。

您可以访问此参考以获取数组方法的详细列表:Array Methods

【讨论】:

  • 有一个错字:mylistOfArrays.push 应该是 myListOfArrays.push
【解决方案2】:

有很多方法可以做到这一点。试试:

var myListofArrays = [];

var firstArray = [1,2,3,4,5,6];
var secondArray = [6,5,4,3,2,1];
var thirdArray = [1,1,1];

myListofArrays.push(firstArray);
myListofArrays.push(secondArray);
myListofArrays.push(thirdArray);

或者更喜欢一点:

myListofArrays.push(firstArray, secondArray, thirdArray);

或者:

var firstArray = [1,2,3,4,5,6],
    secondArray = [6,5,4,3,2,1],
    thirdArray = [1,1,1],
    myListOfArrays = [firstArray, secondArray, thirdArray];

而且可能还有很多其他有效的方法可以做到这一点。

【讨论】:

    【解决方案3】:

    除了Andrew Clavin's answer,你也可以试试这个:

    var myListofArrays =[];
    
    var firstArray = [1,2,3,4,5,6];
    var secondArray = [6,5,4,3,2,1];
    var thirdArray = [1,1,1];
    
    myListofArrays[0]=firstArray;
    myListofArrays[1]=secondArray;
    myListofArrays[2]=thirdArray;
    
    console.log(myListofArrays);
    

    查看jsFiddle

    【讨论】:

    • @squint 是的,你是对的,在我想发布完整答案之前,Andrew Calvin 发布了它。
    【解决方案4】:

    嗨,我想你快到了。

    试试这个:

    var myListofArrays = [];
    

    在开始向其中倾倒东西之前,您需要将变量声明为数组。

    编辑

    如果你想缩短你的代码,你也可以试试这个:

    var myListofArrays = [];
    
    var firstArray = [1,2,3,4,5,6];
    var secondArray = [6,5,4,3,2,1];
    var thirdArray = [1,1,1];
    
    myListofArrays = [firstArray, secondArray, thirdArray];
    

    这会将您声明的所有数组推送到您的主数组(myListofArrays)中,并且因为您将其声明为顶部的数组,javascript 将理解它是一个数组并相应地推送其余数组。

    【讨论】:

      【解决方案5】:

      由于没有人提到concat 方法。这是我的贡献:

      var myListofArrays = [];
      
      var firstArray = [1, 2, 3, 4, 5, 6];
      var secondArray = [6, 5, 4, 3, 2, 1];
      var thirdArray = [1, 1, 1];
      
      function concatAllArrays() {
        for (var i = 0; i < arguments.length; i++) {
          if (!Array.isArray(myListofArrays[i])) {
            myListofArrays[i] = [];
          }
          myListofArrays[i] = myListofArrays[i].concat(arguments[i]);
        }
      }
      
      concatAllArrays(firstArray, secondArray, thirdArray);
      console.log('My array => ', myListofArrays);

      【讨论】:

        猜你喜欢
        • 2018-01-31
        • 2014-06-05
        • 2015-01-13
        • 2023-01-14
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多