Показать сообщение отдельно
  #1 (permalink)  
Старый 02.07.2020, 13:11
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Как отфильтровать объект внутри объекта и вернуть значение?
Есть объекты. Внутри объектов есть ещё один объект. Таким образом при переборе toArrayStaff у нас получается:

toArrayStaff - переменная с объектами
toArrayStaff.element - конкретный объект при переборе методом filter, например
toArrayStaff.element.full_names - тоже объект, в котором нужно найти совпадение

Если внутри full_names есть совпадение по искомому слову, то я должен вернуть element сохранив его исключительно в toArrayStaff (по сути просто отфильтровав лишние). Я пробую так:

toArrayStaff = toArrayStaff.filter(element => {
            const allName = Object.values(element.full_names) // преобразовываем в массив значения объекта

            allName.filter(name => {
                // ищем строку в подстроке
                if ( name.indexOf("имя") !== -1 ) {
                    return element // вот тут ещё есть отфильтрованные значения
                }
            })
            return element // а вот тут уже нет - возвращаются абсолютно все без учёта перебора allName
        })

На выхлопе получается тот же самый объект, как будь-то его и не фильтровали.

Последний раз редактировалось CryNet, 02.07.2020 в 13:14.
Ответить с цитированием