显然我无法理解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/