У меня есть массив returnedDocs
в приведенном ниже коде (сокращен до let returnedDocs = result.application.modules.module.moduleItem;
), который я получил в ответ от API, его структура довольно сложна.Некоторые вложенные объекты являются массивами, некоторые значения размещены на глубине структуры на несколько уровней.
Я использую метод фильтра, чтобы получить только те элементы, которые получили определенное значение.
let toFilterSix = returnedDocs.filter(
o =>
o.repeatableGroup.repeatableGroupItem.vocabularyReference
.vocabularyReferenceItem.formattedValue._text === "Abdomen"
);
this.filterArray6 = toFilterSix;
Обычно это работает нормально, нов приведенном ниже примере один из repeatableGroupItem
- это массив с двумя элементами (изображение).
Я получил ошибку из-за того, что в отфильтрованных объектах есть неожиданный массив:
Results.vue?82a0:202 Uncaught (in promise) TypeError: Cannot read property 'vocabularyReferenceItem' of undefined
at eval (Results.vue?82a0:202)
at Array.filter (<anonymous>)
at eval (Results.vue?82a0:201)
Как избежать ошибки при фильтрации других элементов, не являющихся массивами?
Здесь вы можете изучить модель данных, это console.log'ed: https://lucid -villani-539a6f.netlify.com / результаты