我有一个索引为 0..n 的数组,第 0 个位置为零。我的信息从位置 1 开始。遍历这个数组并从位置 1 开始的 Ruby 方式是什么。目前我正在做的事情如下:
(1...@vertices.length).each do |index|
do something with @vertices[index]
end
我有一个索引为 0..n 的数组,第 0 个位置为零。我的信息从位置 1 开始。遍历这个数组并从位置 1 开始的 Ruby 方式是什么。目前我正在做的事情如下:
(1...@vertices.length).each do |index|
do something with @vertices[index]
end
我正在建立化学式名称。为了避免混淆,我想在@vertices[1] 中存储一个具有 1 个碳原子的分子
使用 aHash
代替:
@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 开始,因为 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
我更喜欢第一个。它似乎更优雅。
1.upto(array.size) {|index| array[index] }
这将使用upto
方法来管理索引,然后您使用索引来访问数组的元素。
不知道为什么 nil 在 0 位置很重要,我认为它与如何从数组中的索引 1 遍历无关。事实上,没有必要提到你有一个索引从 0 到 n 的数组,因为它在 Ruby 中描述了非常数组。
如果你不想要第一个,一个选项是扔掉它。
@vertices.shift
@vertices[0]
# => the one you want
shift
是删除第一个元素并返回它。它改变了数组本身。文档:http ://www.ruby-doc.org/core-1.9.3/Array.html#method-i-shift