如何修改此过滤器以包含ignoreExtensions
:
val ignoreExtensions = List("css", "js") //> ignoreExtensions : List[String] = List(css, js)
val links = List("test.css", "file.html") //> links : List[String] = List(test.css, file.html)
links.filter(f => !f.endsWith(".css")) //> res0: List[String] = List(file.html)
目前它的工作原理是将“.css”硬编码到过滤器中,但是想过滤掉任何以List ignoreExtensions中的任何元素结尾的项目吗?
答案 0 :(得分:2)
links.filterNot(f => ignoredExtensions.exists(ext => f.endsWith(ext)))
答案 1 :(得分:-2)
您可以按照以下方式执行此操作。
links.filter(f => ignoreExtensions.contains(f.dropWhile(_ != '.').drop(1)))
答案 2 :(得分:-2)
要理解,我会返回List[List[String]]
,因此我在最后添加了对flatMap
的调用,并将其展平为List[String]
。
( for ( ext <- ignoreExtensions )
yield ( links.filter(_.endsWith(ext)) )
).flatMap(x=>x)