在Javascript中,函数
array.map(callback[, thisArg])
在这个数组中的每个元素上调用提供的函数,并创建一个新的数组来存储执行结果。(根据mdn的文档)。Groovy中是否有类似的功能?
array.map(callback[, thisArg])
在这个数组中的每个元素上调用提供的函数,并创建一个新的数组来存储执行结果。(根据mdn的文档)。Groovy中是否有类似的功能?
你可能正在寻找collect
:
def numbers = [1,2,3]
assert numbers.collect { it * 2 } == [2,4,6]
还有一些专门针对Collection
和数组类型定义的变体(而不是针对任何对象有效的collect本身,其默认行为将任意对象视为只包含该对象的单元素数组),例如collectMany
,它允许您为每个元素返回零个、一个或多个结果,并将所有结果连接起来。
assert numbers.collectMany { (it > 1) ? [it, -1*it] : [] } == [2, -2, 3, -3]