配列とオブジェクトの属性を反復処理するより良い方法はありますか? [閉まっている]
概要
(編集:今、私はコーディングに ChatGPT を使用しています…SO ポリシーやモデレーターよりも 1000 倍優れています)
機能する解決策を見つけましたが、ブロックの大量のコピー/ペーストを実行しましたが、変更されるのはインスタンスのパラメータのみです( myobject.red 、 myobject.blue 、 myobject. yellow )。このメソッドをリファクタリングしてみます。 Myobject のインスタンスがあるので、各パラメーターにデータをプッシュする必要があります。どこかにエレガントな解決策が存在すると思います。
データのセットを作成するには、配列を反復処理します。配列の各結果は、インスタンスの対応するパラメーターにプッシュする必要があります。ありがとう
class Myobject
def initialize
@blue = blue
@red = red
@yellow = yellow
end
end
def mymethod
param = ['foo','bar','jaa']
param.each { |param|
case param
when 'foo'
data = collect_method
myobject.blue.push(data)
when 'bar'
data = collect_method
myobject.red.push(data)
when 'jaa'
data = collect_method
myobject.yellow.push(data)
end
end
end
解決策
def mymethod
params = {'foo'=>:blue,'bar'=>:red,'jaa'=>:yellow}
params.each do |k,v|
my_object.send(v).push(collect_method(k))
end
end
ここで、collect_method は Myobject クラスの別のメソッドです