Удалите дочерние элементы из Parent с помощью операции фильтра в kotlin - PullRequest
0 голосов
/ 26 марта 2020

Я хочу отфильтровать данные вложенного списка с удалением дочерних элементов, которые не совпадают. Вы можете увидеть kotlin пример игровой площадки здесь https://pl.kotl.in/b-6SOvMvZ

val filterTxt = "an"
val filterData = mainData.deviceList.filter { items -> 
    items.itemList.any { 
          it.itemName.contains(filterTxt, true)
    }
}

В настоящее время используется любой с фильтром, но не получается ожидаемый результат, так как он возвращает все элементы.

Current Result : [[fan, mobile], [bottle, mobile, fan]]

Expected Result : [[fan], fan]]

1 Ответ

1 голос
/ 26 марта 2020

any вернет true, если какой-либо элемент списка соответствует предикату. Это не то, что вы хотите. Вам нужны только элементы, которые удовлетворяют вашему условию (или предикату).

val filterData = mainData.deviceList.map { items -> 
    items.itemList.filter { 
        it.itemName.contains(filterTxt, true)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...