Итак, у меня есть массив объектов, каждый со свойством INTELLCONT. Некоторые из этих свойств представляют собой массив из более чем одного элемента, некоторые - просто один объект.
Я хочу перебрать каждое из них и добавить его в мой массив состояний результатов, который передается другому компоненту. Я получаю только последние 4 вложенных элемента INTELLCONT в моем массиве результатов (всего 16 элементов INTELLCONT). Мои функции console.log () регистрируют все 16 значений, поэтому я знаю, что могу получить к ним правильный доступ.
Почему только некоторые из моих элементов добавляются в массив результатов?
РЕДАКТИРОВАТЬ: При ближайшем рассмотрении посмотри на консоль. Похоже, что каждый раз, когда происходит переход от IF к оператору ELSE (или наоборот), он заменяет все значения в массиве (или создает новое значение?). то есть 3 вложенных значения заменяются одним не вложенным значением, а затем это одно значение заменяется 4 не вложенными значениями. Все еще не уверен, в чем проблема, хотя!
Спасибо!
if (resultData) {
resultData.forEach(function(element) {
if (element.INTELLCONT.length > 1) {
element.INTELLCONT.forEach(function(nested) {
console.log(nested.TITLE._text);
const newResults = element.INTELLCONT.map(result => (
{
...results,
title: result.TITLE._text,
}));
setResults(newResults);
});
} else {
console.log(element.INTELLCONT.TITLE._text);
const newResults = [
...results,
{ title: element.INTELLCONT.TITLE._text },
];
setResults(newResults);
}
});