extract data from an array

S

Sijo Kg

Hi
I have a while loop as below

while count <= total_ci_id_asso_types do
v = "sd_ci"+"#{count}"
ci_id_asso_type=params[:"#{v}"]
count=count+1
end

for example
puts ci_id_asso_type gives
id45service_desk_ci_association_type_id1
id65service_desk_ci_association_type_id1 etc

What I need is to get
45,1
65,1 (ie two numbers) from above..How can I do that

Thanks in advance
Sijo
 
J

Jesús Gabriel y Galán

Hi
I have a while loop as below

while count <= total_ci_id_asso_types do
v = "sd_ci"+"#{count}"
ci_id_asso_type=params[:"#{v}"]
count=count+1
end

for example
puts ci_id_asso_type gives
id45service_desk_ci_association_type_id1
id65service_desk_ci_association_type_id1 etc

What I need is to get
45,1
65,1 (ie two numbers) from above..How can I do that

One way, if the string has always those contents, and only the numbers change:

x,y = ci_id_asso_type.match(/id(\d+)service_desk_ci_association_type_id(\d+)/).captures.map
{|n| n.to_i}

BTW, I would do the loop like this:

1.upto(total_ci_id_asso_types) do |count|
v = "sd_ci"+"#{count}"
ci_id_asso_type=params[:"#{v}"]
end

or

total_ci_id_asso_types.times do |count|
v = "sd_ci"+"#{count + 1}"
ci_id_asso_type=params[:"#{v}"]
end

Regards,

Jesus.
 
T

Todd Benson

Hi
I have a while loop as below

while count <= total_ci_id_asso_types do
v = "sd_ci"+"#{count}"
ci_id_asso_type=params[:"#{v}"]
count=count+1
end

for example
puts ci_id_asso_type gives
id45service_desk_ci_association_type_id1
id65service_desk_ci_association_type_id1 etc

What I need is to get
45,1
65,1 (ie two numbers) from above..How can I do that

Thanks in advance
Sijo

s = "id45service_desk_ci_association_type_id1"
(s.match /(\d+)service_desk_ci_association_type_id(\d+)/)[1,2].join(',')
=> "45,1"

Also, instead of params[:"#{v}"], you can just do params[v.to_sym] or
params[v.intern]

Todd
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,289
Messages
2,571,435
Members
48,120
Latest member
Natbelix

Latest Threads

Top