数组长度为零,但数组不为空
2020-11-04
2236
当我尝试遍历数组、获取其长度或访问索引时,我收到错误
TypeError: 无法读取未定义的属性“map”
。
数组不为空,当我
console.log()
它时,我得到了。
0: {user_id: 11, …}
length: 1
__proto__: Array(0)
我看到 proto : Array(0),我假设这意味着它是一个长度为 0 的数组,但我如何使其长度非零以便我可以遍历它?
参考代码:
useEffect(() => {
blog.authors.map(data => {
console.log(data)
})
}, [blog])
我也试过了。它有效,但我立即收到类似的错误。
useEffect(() => {
(async() => {
await blog.authors.map(data => {
console.log(data)
})
})()
}, [blog])
2个回答
通过简单检查
blog.authors
是否未定义可以解决这个问题。
Bohdan Yarish
2020-11-04
不,数组索引是基于
0
的。
var arr = ['a', 'b'];
console.log(arr.length); // => 2
console.log(arr[0]); // => a
因此,您无需对什么有效做出令人困惑的断言,也不必在不提供代码的情况下提供其他代码,只需查看结果即可:
useEffect(() => {
console.log({blog});
console.log({authors: blog.authors });
blog.authors.map(data => {
console.log(data)
})
}, [blog])
因为我怀疑
blog
会随着时间的推移而发生变化,有些作者和一些作者未定义。
farvilain
2020-11-04