Groovy中与Javascript的map()等价的方法是什么?

5
在Javascript中,函数
array.map(callback[, thisArg])

在这个数组中的每个元素上调用提供的函数,并创建一个新的数组来存储执行结果。(根据mdn的文档)。Groovy中是否有类似的功能?

1个回答

16

你可能正在寻找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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接