我的问题是,如何搜索数组并在搜索的当前索引处替换字符串,而不知道索引数组字符串包含什么内容?
下面的代码将搜索互联网上托管的ajax文件,它会找到库存,查看我的库存中的每个武器,将ID添加到字符串中(这样我就可以检查之前是否已检查过该武器) 。然后它将在库存中出现的次数之后添加另一个值,然后在我检查库存中的所有武器之后,它将通过添加到字符串中的所有ID并将其与数字一起显示(发生的数量)。这是我知道我拥有的每种武器中有多少。
这是我所拥有的一个例子:
strList = ""
inventory.each do |inv|
amount = 1
exists = false
ids = strList.split(',')
ids.each do |ind|
if (inv['id'] == ind.split('/').first) then
exists = true
amount = ind.split('/').first.to_i
amount += 1
ind = "#{inv['id']}/#{amount.to_s}" # This doesn't seem work as expected.
end
end
if (exists == true) then
ids.push("#{inv['id']}/#{amount.to_s}")
strList = ids.join(",")
end
end
strList.split(",").each do |item|
puts "#{item.split('/').first} (#{item.split('/').last})"
end
这是我所期望的代码(伪代码)的概念:
inventory = get_inventory()
drawn_inv = ""
loop.inventory do |inv|
if (inv['id'].occurred_before?)
inv['id'].count += 1
end
end loop
loop.inventory do |inv|
drawn_inv.add(inv['id'] + "/" + inv['id'].count)
end loop
loop.drawn_inv do |inv|
puts "#{inv}"
end loop
有关如何更换该系列的任何帮助表示赞赏!
编辑:很抱歉不需要有关我的代码的更多信息。我跳过代码底部不太重要的部分并显示注释代码而不是实际代码,我现在就添加它。
编辑#2:我会更新我对它的作用以及我期望的结果的描述。
编辑#3:添加了伪代码。
提前致谢, SteTrezla
答案 0 :(得分:1)
你想要#each_with_index:http://ruby-doc.org/core-2.2.0/Enumerable.html#method-i-each_with_index
您可能还想查看#gsub,因为它需要一个块。您可能根本不需要将此字符串拆分为数组。基本上类似于strList.gsub(...){ |match| #...your block }