获取数组中三个连续元素的值

Isa*_*wis 2 ruby arrays cgi url-parameters

我有一个大型数组,h它包含一个被调用的参数的几个实例,startingParam后面总是跟着两个相关但不总是相同的参数.我需要查找startingParam数组中的每个实例,并将它和接下来的两个参数推送到一个单独的数组中holdingArray.

以下代码无效,因为我对Ruby很新.有谁知道我做错了什么?有没有更好的方法来解决这个问题?

h.each do |param|
    if param == 'startingParam'
        holdingArray << h.[param],
        holdingArray << h.[param + 1],
        holdingArray << h.[param + 2]
    end
end
Run Code Online (Sandbox Code Playgroud)

非常感谢.

d11*_*wtq 5

您可以使用#slice_before以下方法获取块:

arr = ['startingParam', 1, 2, 'startingParam', 3, 4]

arr.slice_before('startingParam')
# => [['startingParam', 1, 2], ['startingParam', 3, 4]]
Run Code Online (Sandbox Code Playgroud)

但是,如果您创建了原始数据结构,则可能需要重新考虑您的设计.