Ruby数组从1开始

时间:2013-08-19 09:07:22

标签: ruby

我有一个索引为0的数组.n第0位是零。我的信息从位置1开始。什么是Ruby方式遍历此数组并从第一位开始。目前我正在做的是:

(1...@vertices.length).each do |index|
  do something with @vertices[index]
end

4 个答案:

答案 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