通过定义的数组元素的子字符串从定义范围返回子阵 [英] Return sub-array from defined range by substrings of defined array elements

查看:158
本文介绍了通过定义的数组元素的子字符串从定义范围返回子阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有元素的有序阵列(独特的,而不是连续的):

I have a sorted array of elements (unique and not consecutive):

array= ["AAA", "BBB", "CCC", "DDD", "EEE"]

我定义了一个范围的元素:

I defined a range of elements:

range_1 = ("CC" .. "DD")
range_2 = ("B" .. "E")

元素的范围仅仅是字符串是指一个阵列元素,但只有当 STARTS_WITH?真正这些元素。例如:

The range of elements are just strings which refers to an array elements but only if starts_with? is true for these elements. Example:

"C", "CC" and "CCC" in range - fits to "CCC" in array
"D", "DD" and "DDD" in range - fits to "DDD" in array

所需结果 range_1 range_2 会是这样的:

result_1 = ["CCC", "DDD"]
result_2 = ["BBB", "CCC", "DDD", "EEE"]

如何在Ruby中实现这一点?

How to implement this in Ruby?

推荐答案

另一种方式:

def git_em(array, range)
  array.select {|e| range.any? {|r| e.start_with? r}}
end

array= ["AAA", "BBB", "CCC", "DDD", "EEE"]
range_1 = ("CC" .. "DD")
range_2 = ("B" .. "E")

git_em(array,range_1) # => ["CCC", "DDD"]
git_em(array,range_2) # => ["BBB", "CCC", "DDD", "EEE"] 

这篇关于通过定义的数组元素的子字符串从定义范围返回子阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆