From: 7stud -- Newsgroups: comp.lang.ruby Subject: Re: Splitting each_cons? Date: Sun, 3 Apr 2011 15:24:41 -0500 Organization: Service de news de lacave.net Lines: 52 Message-ID: <233827b0b1dbc92b5beba2df1bfcdcc5@ruby-forum.com> References: <5871e9ab38bdcb62e11f435fc17d510d@ruby-forum.com> NNTP-Posting-Host: bristol.highgroove.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: talisker.lacave.net 1301862293 73378 65.111.164.187 (3 Apr 2011 20:24:53 GMT) X-Complaints-To: abuse@lacave.net NNTP-Posting-Date: Sun, 3 Apr 2011 20:24:53 +0000 (UTC) In-Reply-To: <5871e9ab38bdcb62e11f435fc17d510d@ruby-forum.com> X-Received-From: This message has been automatically forwarded from the ruby-talk mailing list by a gateway at comp.lang.ruby. If it is SPAM, it did not originate at comp.lang.ruby. Please report the original sender, and not us. Thanks! For more details about this gateway, please visit: http://blog.grayproductions.net/categories/the_gateway X-Mail-Count: 380859 X-Ml-Name: ruby-talk X-Rubymirror: Yes X-Ruby-Talk: <233827b0b1dbc92b5beba2df1bfcdcc5@ruby-forum.com> Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.stben.net!talisker.lacave.net!lacave.net!not-for-mail Xref: x330-a1.tempe.blueboxinc.net comp.lang.ruby:2211 I would do it like this: films = [["one", "vol1"], ["one", "vol2"], ["three", "vol3"]] films.each do |arr| puts arr.join(' : ') end --output:-- one : vol1 one : vol2 three : vol3 And if you want to save the strings in a new_array--rather than print them--you can use map(): films = [["one", "vol1"], ["one", "vol2"], ["three", "vol3"]] results = films.map do |arr| arr.join(' : ') end p results --output:-- ["one : vol1", "one : vol2", "three : vol3"] Array#join() and String#split() should be in every beginner's arsenal. As for map(), it sends each element of the array to the block, and then shoves the return value of the block into a new array. Here is a simpler example: films = [["one", "vol1"], ["one", "vol2"], ["three", "vol3"]] results = films.map do |arr| "hello" end p results --output:-- ["hello", "hello", "hello"] For each element of the array, the block returns one value, which is stored in a new array. -- Posted via http://www.ruby-forum.com/.