【问题标题】:Building an array with indefinite dimensions构建一个不定维度的数组
【发布时间】:2013-04-04 07:23:33
【问题描述】:

我希望构建一个维数不定的数组。

我怎么可能:

  • 获取父数组的维数
  • 循环浏览最外层的维度元素

我知道这可能是一个愚蠢的问题,但我是 javascript 的新手,所以请指导我。

[编辑]

我正在处理的项目将生成 html 代码(用于特定应用程序)。我会要求用户输入行和列(列按顺序嵌套在彼此下方)。

示例:

Rows = a,b,c
col1 = q,w,e
col2 = 1,2,3

It would generate a table like this:
| rows |  q  |  w  |  e  |
|      |1|2|3|1|2|3|1|2|3|
|  a   |x|x|x|x|x|x|x|x|x|
|  b   |x|x|x|x|x|x|x|x|x|
|  c   |x|x|x|x|x|x|x|x|x|

但是一些自定义函数被要求(比如合并单元格、隐藏列等),所以我计划创建一个嵌套数组来保存列。

【问题讨论】:

  • 你能给出你想要做什么的代码 sn-p 吗?
  • JavaScript 数组不是多维的,尽管它们可以嵌套以产生类似的效果。如果不遍历嵌套数组,就无法知道嵌套的深度。
  • 我不是+1,再加上花一点时间了解什么是JS数组,你不会后悔的! w3schools.com/js/js_obj_array.asp
  • 非常感谢提供信息的人,我认为 JS 数组可以是多维的,所以唯一的方法是遍历嵌套数组以查找它嵌套了多少层。至于代码 sn-p,我还没有它,因为我仍在试图弄清楚如何去做。但会更新问题。

标签: javascript jquery


【解决方案1】:

如果我正确阅读了您的问题,那么您正在尝试遍历一个非正方形的数组数组。您可以在外部数组的每个索引处获取 .length 属性以获取内部维度。

var one = [1];
var two = [1,1];
var three = [1,1,1];
var four = [1,1,1,1];
var five = [1,1,1,1,1];

var container = [one,two,three,four,five];
$("#outer").html(container.length);

for(var i =0; i < container.length; i++){
     $("#inner").append(container[i].length + ',');   
}

http://jsfiddle.net/ZPwrn/ - 运行示例

【讨论】:

  • 感谢您的提琴,但我想我必须在递归函数中使用 for 循环来获取所有级别。
【解决方案2】:

Java 脚本数组不是多维的,顺便说一句,您可以创建数组数组来实现相同的目的。

var xArrays = [[],[],[]];

虽然它们不是多维的,但它们可以随时调整大小。

xArrays.push([]);  xArrays[xArrays.length]=[]; //adding an array
xArrays.pop(); //removing an array

遍历数组,

xArray.forEach(
        function(xTemp){ 
            alert(xTemp.length); //You can do your inner level iterations here. 
                      });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多