1

既存の配列から新しい配列を作成し、数学演算子を使用してコンテンツを変更するとしたら、どのようにすればよいでしょうか? 以下のコードを試してみると、未定義のメソッドに関するエラーが表示されます。

ary1 = [1, 2, 3, 4, 5]
ary2 = ary1.each { |i| 
    ary1[i] = ary1[i] * 10
}
p ary1
p ary2

数学演算子は Array クラスに含まれていないと仮定します。

4

1 に答える 1

8

map関数 ( docs )を探しています。

ary1 = [1, 2, 3, 4, 5]
ary2 = ary1.map {|value| value * 10}

map一般に、特定の配列を変換して新しい配列を生成する優れた方法です。配列内の各アイテムに対して呼び出されるブロックを渡します。このブロックは、インデックスではなく各アイテムを引数として受け取ります。これを呼び出しましvalueた。ブロックの戻り値は新しい配列に集められ、map関数が完了すると返されます。

于 2013-01-03T14:22:24.230 に答える