Search code examples
ruby

How to Split Ruby Array of Hashes


I want to split an array of hashes.

.split is not working on it.

enter image description here

I want to split it in two while maintaining the order so may be .partion, .select, group_by will not work for me.

Something from this

allay = [
  {name: "Iron Man", power: "Tech"},
  {name: "Spiderman", power: "Iron Man as Uncle"},
  {name: "Thor", power: "God"},
  {name: "Hawk Eye", power: "None"},
  {name: "Black Widow", power: "love her"}
]

to this as an output

=> [
  [
    {name: "Iron Man", power: "Tech"},
    {name: "Spiderman", power: "Iron Man as an Uncle"},
    {name: "Thor", power: "God"}
  ],
  [
    {name: "Hawk Eye", power: "None"},
    {name: "Black Widow", power: "love her <3"}
  ]
]

Solution

  • It can be achieved by using drop and take:

    def split_by_index(array, n)
      [array.take(n), array.drop(n)]
    end