From: Kassym Dorsel Date: 2011-09-17T07:03:28+09:00 Subject: array.map! + delete_if possible ? I have an array of strings that I need to modify. I either need to replace the string or delete the entry altogether. The only way I have been able to do this is : arr.delete("") (0..arr.size).each do |i| if arr[i].to_i == 1201 arr[i]=arr[i].to_s[8..-1].gsub(/"[^"]*"/,'::').gsub(/".*/,"::") else arr[i-1] = arr[i-1] + arr[i].to_s[4..-1].to_s.gsub(/\s*/,"") arr[i]=nil end end arr.delete(nil) Is there a better way ? Also inside the else I get char 4->-1 of a string, but then need to explicitly change it into a string for gsub to work. Otherwise it gives me an undefined method 'gsub' for nilNilClass error. -- Posted via http://www.ruby-forum.com/.