2017-10-21 75 views
1

我想過濾一個數組到每個第n個項目的數組中。對於例子:Kotlin filter lambda array using iteration index

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() 
} 

是否有一個慣用的方式來做到這一點使用例如科特林的.filter()和無A)設置新ArrayList和B)手動迭代與for/in循環?

+0

只是一個評論,上面的代碼只是Java的屏蔽在Kotlin文件中,我建議您嘗試以不同的方式查看Kotlin代碼,這將幫助您使用我們可用的所有內容。 –

+0

絕對如此。這就是我問這個問題的原因。 –

回答

3

filterIndexed功能正好適合這種情況:

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