javascript - jQuery-JS 使用循环从多维数组追加

标签 javascript arrays multidimensional-array

显然我无法理解JS在解析多维数组中的数据时的逻辑是如何工作的。

假设我们有一个 3D 数组,如下所示:

 var data = new Array(("1","2",("7","8","9")),("3","4",("10","11","12")),("5","6",("13","14","15")));

我有一个简单的 HTML 结构,就像一个带有 id=parentdiv 的 div

我想将它附加到 DOM 中,以便看起来每个维度都在不同的 div 中,但仍然是前一个维度的 div 的子元素,最终结果如下: 子级1:( 1 2 孙子div1.1: 7 孙子div1.2: 8 孙子div1.3: 9) 子级2:( 3 4 孙子div2.1: 10 孙子div2.2: 11 孙子div2.3: 12) 子级3:( 5 6 孙子div3.1: 13 孙子div3.2: 14 孙子div3.3: 15) 最终打印一个简单的 1 2 7 8 9 3 4 10 11 12 5 6 13 14 15

设置一个 fiddle 来检查循环如何工作.. http://jsfiddle.net/M_Elf/68zfgdaq/1/ 使用 $each 而不是 for 当然不会改变任何东西 我注意到的是,每个循环的行为都独立于其父循环...从未见过解析来自超过 2 个维度的数据的示例,并且循环内的循环似乎不像我预测的那样工作...有什么建议吗?

<小时/>

用递归的思维方式解决

最佳答案

我认为您没有正确使用 Array() 构造函数。使用该构造函数而不仅仅是 var arr = [1, 2, 3];

有点不合常规

问题是 Array() 构造函数期望每个参数都是单个值或对象;相反,您尝试为其提供多维数组,但您没有正确构建这些内部数组!它可能看起来像这样:

var data = new Array(new Array(1, 2, 3), new Array(4, 5, 6), new Array(7, 8, 9));

一种更简单、更直观的方法是像这样声明数组:

var data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

它可以更容易地了解数组如何嵌套以及多维结构是什么。

关于javascript - jQuery-JS 使用循环从多维数组追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476972/

相关文章:

javascript - 如何分别管理两个不同输入的状态

c++ - 谁能给我解释一下这段代码?

java - 如何用不同的方法格式化数组?

c# - 使用 Npgsql 在 postgresql 中插入字符数组

arrays - 如何制作一个以二维数组为值的字典?

javascript - 滚动时如何淡入到淡出元素?

javascript - 如何使用js获取cookies?

javascript - 使用jquery从按钮的动态id动态显示内容

c - 当我将二维数组读取为一维数组时,显示的是什么?

c++ - 使用 SWIG 将 Python 数组传递给 c++ 函数