Вот еще один способ сделать это:
Array(10,20,30,30,50,60,70,80).zipWithIndex.filter{ _._1 % 30 == 0 }.map{ _._2 }
Мне кажется, что .map{ _._2 }
легче понять, чем .unzip._2
, но, возможно, это только я. Также интересно то, что вышеприведенное возвращает:
Array[Int] = Array(2, 3, 5)
В то время как вариант распаковки возвращает это:
scala.collection.mutable.IndexedSeq[Int] = ArrayBuffer(2, 3, 5)