【发布时间】:2017-03-01 06:58:46
【问题描述】:
我有两个数据集
example1 = ["og", "phan"]
example2 = ["dog", "cat", "elephant", "chicken", "snake"]
确切地说,我需要返回的是一个包含来自example1的元素的新数组仅如果它们是example2的任何元素的子字符串和 它们也应该被包含在与它们呈现时相同的顺序中。
我设法使以下代码正常工作,但新数组以不同的顺序返回元素(例如 ["phan", "og"] 而不是 ["og", "phan"]。
r = []
array1.map { |x| r.push(x) if array2.join(" ").include?(x) }
r.flatten
补充:我发现include?在比较数组和数组时使用它不起作用,换句话说,它不会在单个数组元素的字符串中找到子字符串,除非它完全相同。
【问题讨论】:
-
当我尝试你的代码时,顺序是正确的。签出并运行:repl.it/EA98/0
-
确实,但是最后我错过了排序方法,这就是为什么它没有按正确的顺序返回数组。
标签: arrays ruby string substring