Block iteration issues

  • Thread starter Gromobij Swietlisty
  • Start date
G

Gromobij Swietlisty

Hello,

I'm struggling with this stuff and can't find an answer so please
advise.
What I'm trying to achieve

@collection has 7 elements
I want to:
- cycle through all those elements
- assign element["smth"] through element["smth3"] to @ data.set1_smth
through @data.set1_smth3
- the last iteration would be assigning element["smth"] to
@data.set7_smth etc

I just don't seem to grasp how to change @data.set1_smth into
@data.set2_smth etc. when iterating the block.

i = 1
@collection.elements.each do |item|
@data.set1_smth = item.elements["smth"] # obviously
@data.set1_smth should be somehow different
@data.set1_smth2 = item.elements["smth2"]
@data.set1_smth3 = item.elements["smth3"]
i += 1
end

Can anybody help?
I tried @data.send("set" + i + "_smth") but that didn't seem to work.
Thanks in advance.

Radek
 
7

7stud --

Gromobij said:
Hello,

I'm struggling with this stuff and can't find an answer so please
advise.
What I'm trying to achieve

@collection has 7 elements
I want to:
- cycle through all those elements
- assign element["smth"] through element["smth3"] to @ data.set1_smth
through @data.set1_smth3
- the last iteration would be assigning element["smth"] to
@data.set7_smth etc

I just don't seem to grasp how to change @data.set1_smth into
@data.set2_smth etc. when iterating the block.

i = 1
@collection.elements.each do |item|
@data.set1_smth = item.elements["smth"] # obviously
@data.set1_smth should be somehow different
@data.set1_smth2 = item.elements["smth2"]
@data.set1_smth3 = item.elements["smth3"]
i += 1
end

Can anybody help?
I tried @data.send("set" + i + "_smth") but that didn't seem to work.
Thanks in advance.

Radek

- assign element["smth"] through element["smth3"] to @ data.set1_smth
through @data.set1_smth3


If you are naming variables like this:

val1 = 5
val2 = 7
val3 = -3

that tells you that you should be using an array instead:

arr = []
arr[0] = 5
arr[1] = 7
arr[2] = -3

@collection.elements

------------------------------------------------------- Vector::elements
Vector::elements(array, copy = true)
------------------------------------------------------------------------
Creates a vector from an Array. The optional second argument
specifies whether the array itself or a copy is used internally.


Why are you creating a Vector in order to step through the items of your
array?
Can anybody help?

collection = [1, 2, 3, 4, 5, 6, 7]
data = []

collection.each do |item|
data << item
end

p data
 

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

No members online now.

Forum statistics

Threads
474,007
Messages
2,570,266
Members
46,865
Latest member
AveryHamme

Latest Threads

Top