私はCSVのために正規化している何百もの配列を持っています。Ruby Arrayのデフォルト値は?
[
["foo", "tom", nil, 1, 4, "cheese"],
["foo", "tom", "fluffy",nil, 4],
["foo", "tom", "fluffy",1, nil],
...
]
現在、すべての長さを同じにするために、私は最大長を見つけて値に設定しています。
rows.each { |row| row[max_index] ||= nil }
それは新しい長さに等しい配列の長さになるので、これはクールです。
最後にnil
の束を追加するのではなく、Nをインデックス(1ベース)としてCOLUMN_N
を追加する必要がありました。
table_rows.each do |row|
last_index = row.length - 1
(last_index..max_index).to_a.each { |index| row[index] ||= "COLUMN_#{index+1}" }
end
インデックスの機能であるデフォルト値を持つのは面倒なようでした。
この問題を解決しようとしています。それがなければ、私たちがあなたのためにコードを書くことを望んでいるように見えますが、それはSOのためではありません。 "[ask]"とリンクされたページ "[mcve]"とhttp://meta.stackoverflow.com/q/261592/128421を読んで、何が期待されるのかを説明してください。 –
@ theTinManの敬意を表します。私の質問を更新します –
@theTinManが更新されました。 –