Я получаю данные от вызовов API Google Книги, и я собираю данные в более легкий массив, с которым я могу работать. Я использую эту строку, чтобы отобразить данные я заинтересован в:Избегайте ошибки «Невозможно прочитать свойство неопределенной» при сопоставлении данных
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}
});
Большую часть времени она работает просто отлично, но несколько раз один из элементов отсутствует, то это может быть imagelinks
или authors
поэтому получите эту ошибку "Uncaught TypeError: Cannot read property of undefined"
.
Каков наилучший способ избежать этой ошибки?
Единственное решение, которое я имею в виду, это сначала запустить проверку работоспособности по всем данным и применить карту только после этого, но может быть, лучшее решение? И обертывание всего в попытке и улове выкидывает меня из операции сопоставления слишком рано и не дополняет остальные данные.
Проверка ваших входящих данных - это, безусловно, лучшее решение. Это позволит вам очень решительно решить, как обрабатываются недостающие данные, и обеспечивает более надежный подход к обработке ошибок. – CollinD