ruby - 基于散列键/值范围返回子数组?

标签 ruby arrays

我有一个排序的元素数组:

array = ["A", "B", "C", "D", "E"]

我定义了一系列元素,其中“键”是起始元素,“值”是结束元素:

range_1 = {"C" => "D"}
range_2 = {"B" => "E"}

如何编写代码以根据数组上方的范围解析返回子数组?

result_1 = ["C", "D"]
result_2 = ["B", "C", "D", "E"]

最佳答案

假设数组的元素是唯一的:

array = ["A", "B", "C", "D", "E"]

range_1 = {"C" => "D"}
range_2 = {"B" => "E"}

def subarray(array, range)
  from, to = range.first
  idx_from = array.index(from)
  idx_to = array.index(to)
  array[idx_from..idx_to]
end

subarray(array, range_1) # => ["C", "D"]
subarray(array, range_2) # => ["B", "C", "D", "E"]

关于ruby - 基于散列键/值范围返回子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730075/

相关文章:

C- 将结构数组设置为 null

javascript - 使用 Ruby Grape 服务器发送的事件

sql - rails/Postgres : “must appear in the GROUP BY clause or be used in an aggregate function”

c++ - 简单的 std::sort 不工作

java - 如何检查数组中的所有重复项是否已分组

python - numpy 二维数组 : get indices of all entries that are connected and share the same value

ruby-on-rails - Unicorn 内存使用几乎填满了所有 RAM

ruby-on-rails - Rails - 如何选择表格中的最后一个日期?

arrays - 在多个级别上同时合并哈希数组的复杂哈希

arrays - 使用 SAS 检查列是否具有指定的特征