Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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对象数组循环未中断_Javascript_Arrays_Javascript Objects - Fatal编程技术网

Javascript对象数组循环未中断

Javascript对象数组循环未中断,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我的for循环有问题。问题是我有一个的,它正在穿过一个对象,并且只穿过数组一次。如何循环整个对象数组循环?当前代码如下: var i = 0; for (var key in data) { console.log(data[key].allProducts[i]); i++; } 您只有一个循环试图控制两个变量,这不是您想要做的。假设数据键类似于['a'、'b'、'c'],那么您实际上得到的是数据['a'][1]、数据['b'][2]、数据['c'][3] 您需要的是两个嵌套循环:

我的
for
循环有问题。问题是我有一个的,它正在穿过一个对象,并且只穿过数组一次。如何循环整个对象数组循环?当前代码如下:

var i = 0;
for (var key in data) {
  console.log(data[key].allProducts[i]);
  i++;
}

您只有一个循环试图控制两个变量,这不是您想要做的。假设数据键类似于
['a'、'b'、'c']
,那么您实际上得到的是数据['a'][1]、数据['b'][2]、数据['c'][3]

您需要的是两个嵌套循环:

for (var key in data) {
    var productsLength = data[key].allProducts.length;
    for (var i = 0; i < productsLength; i++) {
        console.log(data[key].allProducts[i]);
    }
}
for(变量输入数据){
var productsLength=data[key].allProducts.length;
对于(变量i=0;i
既然您在这里使用索引,为什么不立即使用循环呢?那么您就不需要访问属性本身了

根据您的
数据
对象,您可能需要使用或坚持上一个循环,但我想原则很清楚:)

const数据={
第一组:{
所有产品:[
{id:1,名称:'product 1'},
{id:2,名称:'product 2'},
{id:3,名称:'product 3'},
{id:4,名称:'product 4'}
]
},
第2组:{
所有产品:[
{id:5,名称:'product 5'}
]
}
};
对于(让对象项。值(数据)){
对于(项目的产品。所有产品){
控制台日志(产品);
}

}
从内部数组中添加一个内部循环。另外,如果
数据上只有一个属性,那么在外部循环中就没有意义了。如果没有看到JSON@Talpar是正确的,那么很可能需要一个内部循环来实际遍历内部数据。你能添加JSON吗?什么是
数据
?如果你能向我们展示结构并指出你试图循环的内容,我们可以提供帮助
data
似乎是一个对象,您正在
key
data[key]
)上循环-但您是否在问,如果
data[key]
是一个数组,如何循环存储的值?可能是重复的。我试图找到避免做内部循环的方法。谢谢你的帮助。