4

Javascript では関数

array.map(callback[, thisArg])

この配列内のすべての要素に対して提供された関数を呼び出した結果で、新しい配列を作成します。( mdnのドキュメントごと)。Groovyに同等のものはありますか?

4

1 に答える 1

14

あなたはおそらく探しているcollect

def numbers = [1,2,3]
assert numbers.collect { it * 2 } == [2,4,6]

および配列型用に特別に定義されたバリアントもありCollectionます (任意のオブジェクトに対して有効な collect 自体とは対照的に、デフォルトの動作では、任意のオブジェクトをそのオブジェクトだけを含む単一要素の配列と同じように扱います) collectMany。要素ごとにゼロ、1 つ、または複数の結果のリストを返し、結果はすべて連結されます。

assert numbers.collectMany { (it > 1) ? [it, -1*it] : [] } == [2, -2, 3, -3]
于 2013-03-10T12:38:07.590 に答える