无法循环类似数组的对象

时间:2019-04-30 04:09:03

标签: javascript vue.js

我有从服务器收到的一系列对象产品。

return response()->json(['products' => $products->toArray()]);

这是它的日志:

enter image description here

我需要遍历它以获得product.attributes我认为它是一个类似数组的对象,所以我使用Array.prototype.forEach.call

                this.products.forEach(product => {
                    console.log(product);
                    console.log(product.attributes);

                    Array.prototype.forEach.call(product.attributes, function(child) {
                        // It seems the loop doesn't work, so nothing is printed out.
                        console.log(child);
                    });
                });

但是似乎在类似数组的对象上的循环无法正常工作,因此什么也没打印出来,即使我的product.attributes也不为空。这是product.attributes日志:

enter image description here

2 个答案:

答案 0 :(得分:3)

products.attributes不是像对象的数组,而是对象。

但是,如果您愿意,您仍然可以对其进行迭代。您只需要:

Object.entries(product.attribues).forEach(([key, value]) => {  })

答案 1 :(得分:2)

您的product.attributes也是一个对象。所以Array.prototype.forEach.call不起作用。

尝试for...in statement

for (var key in product.attributes) {
  console.log(product.attributes[key]);
}