arrays - 如何在 ruby​​ 中返回相交数组并保留大写/小写?

标签 arrays ruby

我想创建一个函数,返回包含在另一个数组列表中的数组列表。这是我想出的:

def coffee(arr)
  acceptable_coffee = ["dark", "blend", "handsome"]
  good_coffee = acceptable_coffee & arr.map{|n| n.downcase}
end

可能的输入可能包含 acceptable_coffee 中的元素。它们的大小写可能并不总是小写,即:

arr1 = ["dark", "decaf", "java", "HANDSOME"]
arr2 = ["dark", "smooth", "BLEND"]

我希望函数返回包含可接受元素的数组,同时保留它们的大写/小写。然后函数应该返回:

coffee(arr1) #=> ["dark", "HANDSOME"]
coffee(arr2) #=> ["dark", "BLEND"]

目前它分别返回 ["dark", "handsome"]["dark", "blend"]。如果我不做小写,它就不会正确相交。如何在保留大写/小写的同时返回相交数组?不要担心其他边缘情况。假设可能的数组输入元素完全大写/完全小写,如示例所示。

最佳答案

这会得到交集,但 id 并没有完全使用时髦的 & 运算符或集合。

def coffee(rest)
  acceptable_coffee = ["dark", "blend", "handsome"]
  rest.select { |name| acceptable_coffee.include? name.downcase }
end

关于arrays - 如何在 ruby​​ 中返回相交数组并保留大写/小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39624480/

相关文章:

ruby-on-rails - 将用户重定向到注册

javascript - 需要使用 JavaScript 循环 JSON 的帮助。奇怪的行为

python - 矩阵移位的问题

c - 如何将文件 fscanf 转换为多维数组

ruby-on-rails - 运行时出现段错误 'rails s'

ruby - Ruby 内存配置在哪里,如何检查它是否已设置?

Ruby gsub 不区分大小写无法按预期工作

ruby - 方法中无法访问类中的 ActiveModel::Serializer 实例变量

javascript - 获取数组中最多数量的严格均匀间隔的元素,最多可达 'N'

java - 尝试从空数组中读取