Вы можете использовать mapIndexed()
, чтобы получить индекс и значение каждого элемента, преобразовать его в индекс или в ноль, а затем удалить нули ...
val b: List<Int> = a.mapIndexed { i, b -> if (b) i else null }.filterNotNull().toList()
Другим способом будетиспользуйте функцию withIndex()
, отфильтруйте истинные значения и сопоставьте получающиеся пары со значением индекса.Это может быть немного яснее.
val c: List<Int> = a.withIndex().filter { it.value }.map { it.index }