我想得到 2 个字符串数组的交集。第一个数组有不同的大小写。我想要的结果数组应该尊重第一个数组外壳,但是 2 之间的比较应该忽略大写/小写。例如
letters = ['Aaa', 'BbB', 'CCC']
permitted = ['aaa', 'bbb']
结果应该是:
['Aaa', 'BbB']
我在做:
letters.map(&:downcase) & permitted.map(&:downcase)
但这会返回 ['aaa', 'bbb']
执行此操作的巧妙方法是什么?更长的方法是:
letters.each { |letter|
if permitted.include?(letter.downcase)
accepted.push(letter)
end
}
但是有更短/更简洁的方法吗?
最佳答案
您可以使用选择
:
search = permitted.map(&:downcase)
letters.select{|letter|
search.include?(letter.downcase)
}
甚至更整洁(恕我直言):
-> search {
letters.select{|x| search.include?(x.downcase)}
}.call(permitted.map(&:downcase))
关于ruby-on-rails - 2个大小写不同的字符串数组的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38265256/