Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery,如何在复杂数组中循环_Javascript_Jquery_Arrays_Multidimensional Array - Fatal编程技术网

Javascript jquery,如何在复杂数组中循环

Javascript jquery,如何在复杂数组中循环,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,我做了一个ajax并返回了一个多维数组,该数组有5个级别,每个级别都有许多项。我想循环遍历每个级别并创建一个HTML语法。完成所有5级后。我将加入所有语法并将整个列表附加到HTML中 现在我关心的是如何循环它来纠正它 数组结构如下所示 var array = [object, object, object, object] |0 object level 1 |1 object level 2 |0 object

我做了一个ajax并返回了一个多维数组,该数组有5个级别,每个级别都有许多项。我想循环遍历每个级别并创建一个HTML语法。完成所有5级后。我将加入所有语法并将整个列表附加到HTML中

现在我关心的是如何循环它来纠正它

数组结构如下所示

var array = [object, object, object, object]
            |0 object level 1
              |1 object level 2
                |0 object level 3
                  |0 object level 4
                    |0 object level 5
            |1 object
            |2 object 
            |3 object 
下面是一个简化的示例数据

var test = [
    {
        "someid":"25",
        "level1":[
            {
                "name":"john doe",
            }
            "level2": [
            {
                "order_quantity":"1",
                "order_price":"12.00",
                "level3":[
                {
                    "addon_price":"2.00"
                }]
            }]
        }]
    }
]
我尝试使用javascript进行循环,但在第二级之后,它变得非常丑陋,难以跟踪

一级回路

for(i=0; i<array.length;i++)
for(n=0; n<array[i].level1.length;n++)
for(y=0;y<array[i].level2[n].level3.length;y++) 

对于(i=0;i您可以使用递归方法

var数组=[[1,2,3,4],[5,6]],[7,8],[9,10],[11,12]];
array.forEach(函数iter(a){
if(数组isArray(a)){
a、 forEach(iter);
回来
}
控制台日志(a);

})
请添加一个数组示例。如果您需要命中每个元素,那么无论您如何使用,5维数组可能都会很糟糕。退一步,有没有办法减少嵌套的数据结构?有没有可能在ajax请求中更具体地返回更平坦的数据?如果有ob数组,这是否可行对象与数组的比较?例如,OP看起来像是有一个对象数组。你的解决方案看起来像是处理一个数组。对,我问了一些OP的数据,来解决这个问题,但是一个迭代的方法也会有帮助。@NinaScholz我刚刚添加了一个3级样本数据。基本思想是。我想如果我能做3级,我会有一个好主意。我想这可能是答案,它看起来非常有希望,而且非常容易使用。我会用完整的数据来尝试它,然后再报告。@NinaScholz谢谢Nina,这很有效。非常清晰地观察和了解发生了什么。