我在编写一个 ruby 函数时遇到了一个奇怪的问题,该函数用于从通过解析 JSON 字符串创建的哈希中删除不需要的项目。当我在函数中包含 pry 语句时,该函数将返回我所期望的,如本文底部所示。当我删除 pry 语句时,该函数会返回其他内容。我不太确定为什么会这样,我想我会在这里问,同时我试图找出解决我问题的替代方案。
下面,slides 是一串空格分隔的整数,因此 slides.split(' ') 返回一个整数数组。幻灯片组是经过解析的 JSON 哈希。如果需要,我可以提供一个带有 JSON 哈希的文件,但尝试在此处输入它会让人感到沮丧。我认为没有必要查看哈希,因为问题似乎在于 pry 及其对函数的影响。
def selected_slides_and_groups
selected_slide_ids = slides.split(' ')
slide_groups = master_presentation.slide_groups
slide_groups.each do |slide_group|
delete_slides_from_group(slide_group, selected_slide_ids)
end
end
def delete_slides_from_group(slide_group, selected_slide_ids)
binding.pry
slide_group[:content].delete_if do |item|
if item[:type] == 'group'
delete_slides_from_group(item, selected_slide_ids)
elsif selected_slide_ids.include? item[:id]
next
else
true
end
end
binding.pry
end