val data = List("foo", "bar", "bash")
val selection = List(0, 2)
val selectedData = data.filter(datum => selection.contains(datum.MYINDEX))
// INVALID CODE HERE ^
// selectedData: List("foo", "bash")
Run Code Online (Sandbox Code Playgroud)
假设我想过滤List给定的选定索引列表.如果在filter方法中,我可以引用列表项的索引,那么我可以如上所述解决这个问题,但datum.MYINDEX在上述情况下无效.
我怎么能这样做呢?
如何使用zipWithIndex保持对项目索引的引用,如此过滤,然后将索引映射掉?
data.zipWithIndex
.filter{ case (datum, index) => selection.contains(index) }
.map(_._1)
Run Code Online (Sandbox Code Playgroud)