我有两个不同的字符串数组array1
和array2
,其中我想知道array1
中的元素是否也存在array2
而不修改array1
中的元素,但array1
中的值包括冒号:
之后和之后的额外字符。
array1 = ["unit 1 : Unit 1","unit 2 : Unit 2","unit 3 : Unit 3","test : Test", "system1"]
array2 = ["unit 1","unit 2","unit 3","test"]
我尝试使用include?
,但它无法正常使用。
array1.each do |element|
#see if element exists in array 2
if array2.include? element
#print the name of that element
puts element
end
end
我该如何处理?
答案 0 :(得分:3)
修复您的方法,您可以将element
与space
+ :
+ space
分开,并获取first
块进行检查。而不是if array2.include? element
使用
if array2.include? element.split(' : ').first
请参阅Ruby demo
答案 1 :(得分:0)
我认为这里使用的最易读的方法可能是startwith?
,但是如果你知道某个键不能是另一个键的子串。
查看是否所有按键都已到位:
array2.all? do |item|
array1.any?{|keyval| keyval.startwith? item }
end