Javascript 无法遍历对象的JS数组
当我在控制台中看到我的book对象时,它会显示数组,但当我尝试迭代时,它不会在循环中进行迭代Javascript 无法遍历对象的JS数组,javascript,angular,object,Javascript,Angular,Object,当我在控制台中看到我的book对象时,它会显示数组,但当我尝试迭代时,它不会在循环中进行迭代 console.log(book);// logs array of length 6 console.log(typeof book);// logs -> object console.log(book.length);// logs 0 //this for loop does not iterates. for(let i of book) {
console.log(book);// logs array of length 6
console.log(typeof book);// logs -> object
console.log(book.length);// logs 0
//this for loop does not iterates.
for(let i of book)
{
//logic
}
请帮助我如何迭代?
我的book对象在控制台上如下所示。
让我读这本书是错误的。由于它是一个对象数组,请尝试执行以下操作
book.forEach( function (bookItem)
{
Your logic
});
我们这里遗漏了一些细节,你是如何得到这本书的,你能展示更多的过程吗。?凭直觉,我觉得这是一个异步问题。我正在函数中传递它。上面的代码就是这个函数的一部分。实际上我正在编写一个agular 2管道,在其中我可以得到这个book对象。这并没有真正的帮助,你能展示一下你得到
book
的代码吗?如果这是一个Ajax请求,很可能你会遇到async
问题。@tuna在现代JS中,最好远离中的,除非你想乱搞hasOwnProperty
of
以一致的方式与任何ITETRABLE一起工作。不,它应该是of的Arrays@AbhayKumar事实上,正如您所展示的代码所示,问题并不存在。请注意,在Chrome中,console.log可能会丢失前导,这是因为当控制台记录对象时,它会引用该对象(IOW:实时引用)。因此,如果您有一个async
问题,它可能看起来是正确的,但这只是因为您(用户)的时间延迟,单击live引用以获取最新值。我投了反对票,因为此代码比OPs代码更糟糕,而且它无法解决任何问题。@AmareshC。谢谢,你说得对。我让我的管道变得不纯(异步、有状态:)。