У меня есть сотни массивов, которые нормализуются для 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
s в конце мне нужно было добавить COLUMN_N
, где N - индекс (на основе 1).
table_rows.each do |row|
last_index = row.length - 1
(last_index..max_index).to_a.each { |index| row[index] ||= "COLUMN_#{index+1}" }
end
Это казалось неудобным способом иметь значение по умолчанию, которое является функцией индекса.
Мы хотели бы видеть вашу попытку решить эту проблему. Без этого похоже, что вы хотите, чтобы мы писали код для вас, для чего это не так. Пожалуйста, прочитайте «[ask]» и связанные страницы, «[mcve]» и http://meta.stackoverflow.com/q/261592/128421, что поможет объяснить, что ожидается. –
@theTinMan уважение. Я обновлю свой вопрос –
обновил @theTinMan. –