既存の配列から新しい配列を作成し、数学演算子を使用してコンテンツを変更するとしたら、どのようにすればよいでしょうか? 以下のコードを試してみると、未定義のメソッドに関するエラーが表示されます。
ary1 = [1, 2, 3, 4, 5]
ary2 = ary1.each { |i|
ary1[i] = ary1[i] * 10
}
p ary1
p ary2
数学演算子は Array クラスに含まれていないと仮定します。
既存の配列から新しい配列を作成し、数学演算子を使用してコンテンツを変更するとしたら、どのようにすればよいでしょうか? 以下のコードを試してみると、未定義のメソッドに関するエラーが表示されます。
ary1 = [1, 2, 3, 4, 5]
ary2 = ary1.each { |i|
ary1[i] = ary1[i] * 10
}
p ary1
p ary2
数学演算子は Array クラスに含まれていないと仮定します。
map
関数 ( docs )を探しています。
ary1 = [1, 2, 3, 4, 5]
ary2 = ary1.map {|value| value * 10}
map
一般に、特定の配列を変換して新しい配列を生成する優れた方法です。配列内の各アイテムに対して呼び出されるブロックを渡します。このブロックは、インデックスではなく各アイテムを引数として受け取ります。これを呼び出しましvalue
た。ブロックの戻り値は新しい配列に集められ、map
関数が完了すると返されます。