Nishtha Nishtha - 4 months ago 14
Ruby Question

Fetch odd position value from array

I am trying to get only odd position in array but unable to do so.I am in short span of time .Can anyone tell me what can i do


data.each_with_index{|i,index| p i if index.odd?}

[ "shivam" "1" "2" "1", "", "2" "1", "", "", "", "", "", ""]
[ "aman", "2", "5", "3", "3", "3", "2", "", "", "", "", "", ""]

["praneet", "1", "1", "1", "8", "1", "6", "", "", "", "", "", ""]


When I am trying to access bizs[0] it is giving me

dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle
dddddddtitle


and when I am trying to access biz[1] it is giving me this

dddddddaniket
dddddddshivam
dddddddtiwari
dddddddaman
dddddddverma
dddddddpraneet
dddddddsodhi


The output I am getting after this is


ddddddd["title", "aniket", "month1", "200", "month2", "200", "month3", "200", "month4", "200", "month5", "200", "month6", "200", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "shivam", "month1", "1", "month2", "2", "month3", "1", "month4", "", "month5", "2", "month6", "1", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "tiwari", "month1", "1", "month2", "4", "month3", "2", "month4", "2", "month5", "2", "month6", "1", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "aman", "month1", "2", "month2", "5", "month3", "3", "month4", "3", "month5", "3", "month6", "2", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "verma", "month1", "3", "month2", "6", "month3", "4", "month4", "5", "month5", "3", "month6", "3", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "praneet", "month1", "1", "month2", "1", "month3", "1", "month4", "8", "month5", "1", "month6", "6", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]
ddddddd["title", "sodhi", "month1", "1", "month2", "", "month3", "1", "month4", "", "month5", "4", "month6", "", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]


Now All I have to do is just ignore odd position values and store in a new array
Final output should be like this

[ "aniket", "200", "200", "200", "200", "200", "200", "", "", "", "", "", ""]
[ "shivam" "1" "2" "1", "", "2" "1", "", "", "", "", "", ""]
[ "tiwari", "1", "4", "2", "2", "2", "1", "", "", "", "", "", ""]
[ "aman", "2", "5", "3", "3", "3", "2", "", "", "", "", "", ""]

[ "verma", "3", "6", "4", "5", "3", "3", "", "", "", "", "", ""]
["praneet", "1", "1", "1", "8", "1", "6", "", "", "", "", "", ""]
["sodhi", "1", "", "1", "", "4", "", "", "", "", "", "", ""]


I am unable to do so Can anyone help me out with this???

Answer

This one works

bizs.select.with_index { |_, index| index.odd? }

irb output

bizs = ["title", "aniket", "month1", "200", "month2", "200", "month3", "200", "month4", "200", "month5", "200", "month6", "200", "month7", "", "month8", "", "month9", "", "month10", "", "month11", "", "month12", ""]

bizs.select.with_index { |_, index| index.odd? }
#=> ["aniket", "200", "200", "200", "200", "200", "200", "", "", "", "", "", ""]