我有一个索引为0的数组.n第0位是零。我的信息从位置1开始。什么是Ruby方式遍历此数组并从第一位开始。目前我正在做的是:
(1...@vertices.length).each do |index|
do something with @vertices[index]
end
答案 0 :(得分:3)
我正在建造化学式名称。为了避免混淆,我想在@vertices [1]
中存储一个含有1个碳原子的分子
改为使用Hash
:
@vertices = {
1 => 'Molecule with 1 carbon atom',
2 => 'Molecule with 2 carbon atoms',
5 => 'Molecule with 5 carbon atoms'
}
@vertices.each do |carbon_atoms, molecule|
# do something with molecule
end
答案 1 :(得分:2)
我不确定你为什么从索引1开始,因为0是标准的,但我接近这个的方式是:
@vertices[1..-1].each { |element| do_what_you_planned_on_doing }
或
@vertices.each_with_index do |ele, index|
next if index == 0
do_what_you_planned_on_doing
end
我更喜欢第一个。看起来更优雅。
答案 2 :(得分:0)
1.upto(array.size) {|index| array[index] }
这将使用upto
方法来管理索引,然后使用索引来访问数组的元素。
不确定为什么nil处于0位置很重要,我不认为它涉及如何从数组中的索引1遍历。实际上,没有必要提到你有一个索引从0到n的数组,因为它在Ruby中描述了非常数组。
答案 3 :(得分:0)
如果您不想要,可以选择丢弃第一个。
@vertices.shift
@vertices[0]
# => the one you want
shift
是删除第一个元素并将其返回。它改变了数组本身。 Doc:http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-shift