From: matt_neuburg@... (Matt Neuburg) Date: 2009-06-17T02:55:13+09:00 Subject: Re: Extracting and inserting a "column" from/into an array Array is an Enumerable so when you require 'enumerator' you get a bunch of cool ways of slicing it up. > 1/ I have an array and I want to extract every 4 element into another > array : > > # r=red, g=green, b=blue, a=alpha > img_data = [ "r1", "g1", "b1", "a1", "r2, "g2", "b2", "a2" ] > > => [ "a1", "a2" ] # the array of every four elements i.e. alpha data result = img_data.enum_slice(4).map {|arr| arr[3]} > > It's like extracting the fourth column of a matrix of n rows and 4 > columns. > > 2/ Conversely, I have an array and I need to add elements at every 3 > elements > > img_data = [ "r1", "g1", "b1", "r2, "g2", "b2" ] > alpha_data = [ "a1", "a2" ] # the elements to add > > => [ "r1", "g1", "b1", "a1", "r2, "g2", "b2", "a2" ] result = img_data.enum_slice(3).zip(alpha_data).flatten m.