Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- # This piece of code flattens an array without using the flatten method, to run it simply do ruby new_flaten.rb in your terminal
- # maybe a good addition will be discard nil values if no_nils == true new_flaten(array, no_nils=false)
- # and also the possibility of different levels
- def new_flatten(array)
- new_array = []
- array.each do |element|
- if element.is_a?(Array)
- new_array += new_flatten(element)
- else
- new_array << element
- end
- end
- new_array
- end
- def test_0
- array = []
- array == new_flatten(array)
- end
- def test_1
- array = [1, 2, 3, 4, 5]
- array == new_flatten(array)
- end
- def test_2
- array = [[1, 2, [3, 4, 5]], 3, 4, [3]]
- new_flatten(array) == [1, 2, 3, 4, 5, 3, 4, 3]
- end
- def test_3
- array = [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
- new_flatten(array) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- end
- def test_4
- array = [[1, 2, [3]], 4]
- new_flatten(array) == [1, 2, 3, 4]
- end
- if test_0 && test_1 && test_2 && test_3 && test_4
- puts 'Everything seems to be ok :)'
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement