Обновление массива состояний из вложенного массива? - PullRequest
0 голосов
/ 07 января 2020

Итак, у меня есть массив объектов, каждый со свойством 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);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...