gpt4 book ai didi

javascript - 映射数据时避免 'Cannot read property of undefined' 错误

转载 作者:行者123 更新时间:2023-12-02 15:12:06 25 4
gpt4 key购买 nike

我收到了从 Google Books API 调用返回的一些数据,并将这些数据映射到一个更轻量级的数组中,然后可以使用。我使用这一行来映射我感兴趣的数据:

data.items.map(function(book) {
return { googleId : book.id, image : book.volumeInfo.imageLinks.thumbnail, authors : reduceAuthors(book.volumeInfo.authors), title : book.volumeInfo.title, subtitle : book.volumeInfo.subtitle, publishedDate : book.volumeInfo.publishedDate, publisher : book.volumeInfo.publisher}
});

大多数时候它工作得很好,但有时缺少一个元素,可能是imagelinksauthors,因此我收到此错误 “未捕获的类型错误:无法读取未定义的属性”

避免此错误的最佳方法是什么?

我想到的唯一解决方案是首先对整个数据运行健全性检查,然后仅应用 map ,但也许有更好的解决方案?将所有内容包装在 try 和 catch 中会使我过早地退出映射操作,并且无法完成其余数据。

最佳答案

您可以在map()函数中检查它,而无需事先处理整个数据。使用三元条件,如下所示:

 image : ((book.volumeInfo.imageLinks) ? book.volumeInfo.imageLinks.thumbnail : undefined)

因此,如果 book.volumeInfo.imageLinks 为 null/空/未定义,则不会出现错误,并且插入的值将为未定义,否则捕获缩略图值。

关于javascript - 映射数据时避免 'Cannot read property of undefined' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com