gpt4 book ai didi

ruby - 除了在 Ruby 的每个 do 循环中使用计数器变量之外,还有其他方法吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:31 25 4
gpt4 key购买 nike

我正在用 Ruby 输出数组中的项目列表。我需要输出每个项目在数组中的位置,以及值。我认为我在遍历数组时使用值的索引而不是设置一个临时计数器变量是很聪明的,但是当我有一个包含重复项的数组时我被烧毁了。见下文...

array = ["a","b","c","a"]
array.each do |letter|
puts "Position: #{array.index(letter)} - Letter: #{letter}"
end

# Position: 0 - Letter: a
# Position: 1 - Letter: b
# Position: 2 - Letter: c
# Position: 0 - Letter: a # Oops! That's not the position of that item.

下面是生成所需输出的最有效方法,还是有更好的方法将计数器变量赋值包含在每个 do 循环中?

array = ["a","b","c","a"]
counter = 0
array.each do |letter|
puts "Position: #{counter} - Letter: #{letter}"
counter += 1
end

# Position: 0 - Letter: a
# Position: 1 - Letter: b
# Position: 2 - Letter: c
# Position: 3 - Letter: a

最佳答案

array = ["a","b","c","a"]
array.each_with_index do |letter,i|
puts "Position: #{i} - Letter: #{letter}"
end

此外,如果您需要在 map 方法中使用它,您可以使用 .with_index 修饰符:

["a","b","c","a"].map.with_index { |e,i| [e,i] }

=> [["a", 0], ["b", 1], ["c", 2], ["a", 3]]

关于ruby - 除了在 Ruby 的每个 do 循环中使用计数器变量之外,还有其他方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com