Ich habe Hunderte von Arrays, die für eine CSV normalisieren.Ruby Array Standardwert?
[
["foo", "tom", nil, 1, 4, "cheese"],
["foo", "tom", "fluffy",nil, 4],
["foo", "tom", "fluffy",1, nil],
...
]
Derzeit, um alle gleich lang zu machen, finde ich die maximale Länge und Einstellung auf einen Wert.
rows.each { |row| row[max_index] ||= nil }
das ist cool, weil es die Array-Länge gleich der neuen Länge macht.
Anstatt eine Reihe von nil
s am Ende anzufügen, musste ich anhängen, wobei N der Index ist (1-basiert).
table_rows.each do |row|
last_index = row.length - 1
(last_index..max_index).to_a.each { |index| row[index] ||= "COLUMN_#{index+1}" }
end
Was schien eine peinliche Möglichkeit, einen Standardwert, der eine Funktion des Index ist.
Wir würden gerne Ihren Versuch sehen, dies zu lösen. Ohne dass es so aussieht, als ob wir Code für Sie schreiben sollen, wofür SO nicht ist. Bitte lesen Sie "[fragen]" und die verlinkten Seiten, "[mcve]" und http://meta.stackoverflow.com/q/261592/128421, die erklären, was zu erwarten ist. –
@theTinMan Respekt. Ich werde meine Frage aktualisieren –
@theTinMan aktualisiert. –