我遇到for
循环的问题。问题是我有一个for
穿过一个对象,并且只穿过该数组一次。如何遍历整个对象数组循环?当前代码如下:
var i = 0;
for (var key in data) {
console.log(data[key].allProducts[i]);
i++;
}
答案 0 :(得分:0)
好吧,既然您在这里使用索引,为什么不立即使用for...of
循环呢?那么您就不需要访问属性本身了
根据您的data
对象,您可能需要使用Object.values( data )
或坚持以前的for...in
循环,但我想原理很明确:)
const data = {
group1: {
allProducts: [
{ id: 1, name: 'product 1' },
{ id: 2, name: 'product 2' },
{ id: 3, name: 'product 3' },
{ id: 4, name: 'product 4' }
]
},
group2: {
allProducts: [
{ id: 5, name: 'product 5' }
]
}
};
for (let item of Object.values( data) ) {
for (let product of item.allProducts) {
console.log(product);
}
}
答案 1 :(得分:-1)
只有一个循环试图控制两个变量,而这并不是您要尝试的。假设数据键类似于['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]);
}
}