如何从Scala列表中删除每个第n个元素?

Sha*_*kar 1 scala scala-collections

是否有任何方法可以n th element从Scala中删除每个List

我希望我们可以在filter方法内执行此操作并通过编写逻辑返回另一个列表.但这是一种有效的方法吗?

Ale*_*lec 7

我认为到目前为止最简单

def removeNth[A](myList: List[A], n: Int): List[A] = 
  myList.zipWithIndex collect { case (x,i) if (i + 1) % n != 0 => x }
Run Code Online (Sandbox Code Playgroud)

collect是一个经常被遗忘的宝石,它将部分函数作为其第二个参数,使用该函数映射元素并忽略那些不在其域中的元素.