Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. # This piece of code flattens an array without using the flatten method, to run it simply do ruby new_flaten.rb in your terminal
  4. # maybe a good addition will be discard nil values if no_nils == true new_flaten(array, no_nils=false)
  5. # and also the possibility of different levels
  6.  
  7. def new_flatten(array)
  8. new_array = []
  9. array.each do |element|
  10. if element.is_a?(Array)
  11. new_array += new_flatten(element)
  12. else
  13. new_array << element
  14. end
  15. end
  16. new_array
  17. end
  18.  
  19. def test_0
  20. array = []
  21. array == new_flatten(array)
  22. end
  23.  
  24. def test_1
  25. array = [1, 2, 3, 4, 5]
  26. array == new_flatten(array)
  27. end
  28.  
  29. def test_2
  30. array = [[1, 2, [3, 4, 5]], 3, 4, [3]]
  31. new_flatten(array) == [1, 2, 3, 4, 5, 3, 4, 3]
  32. end
  33.  
  34. def test_3
  35. array = [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
  36. new_flatten(array) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  37. end
  38.  
  39. def test_4
  40. array = [[1, 2, [3]], 4]
  41. new_flatten(array) == [1, 2, 3, 4]
  42. end
  43.  
  44. if test_0 && test_1 && test_2 && test_3 && test_4
  45. puts 'Everything seems to be ok :)'
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement