2017-10-21 10 views
1

n番目の項目ごとに配列をフィルタリングしたいと思います。例について:反復インデックスを使用するKotlinフィルタラムダ配列

fun getNth(array: Array<Any>, n: Int): Array<Any> { 
    val newList = ArrayList<Any>() 
    for (i in 0..array.size) { 
     if (i % n == 0) { 
      newList.add(array[i]) 
     } 
    } 
    return newList.toArray() 
} 

はのための/のループで新しいのArrayListおよびB)手動で繰り返し処理をプロビジョニング)の例Kotlinの.filter()とAなしで使用してこれを行うための慣用的な方法はありますか?

+0

だけコメント、上記のコードは、単にJavaがマスクされていますKotlinファイルでは、Kotlinコードを別の方法で見てみることをお勧めします。これは、利用可能なすべてのものを使用するのに役立ちます。 –

+0

絶対に。これが私が質問した理由です。 –

答えて

3

filterIndexed機能はこの場合のために、正確に適しています:

array.filterIndexed { index, value -> index % n == 0 }