我想比较两个数组A
和B
,例如:
A = [3,1,4,5]
B = [3,6,4,1]
并打印出符号'^'
(数组B
)以匹配元素,'+'
用于匹配与其他数组位于同一索引位置的元素(数组{{ 1}})。输出应该是这样的:
A
答案 0 :(得分:2)
在ruby中有许多方法可以做到这一点。这是一种非常灵活和富有表现力的语言。以下是一些:
yarn add vue-router --dev
一些小调:
A = [3,1,4,5]
B = [3,6,4,1]
# 1.
puts(
B.map.with_index do |b_item, index|
if A[index] == b_item
'+'
elsif A.include?(b_item)
'^'
else
' '
end
end.join
)
# 2.
B.each_with_index do |b_item, index|
print(
if A[index] == b_item
'+'
elsif A.include?(b_item)
'^'
else
' '
end
)
end
# 3.
puts(
A.zip(B).map do |a_item, b_item|
if a_item == b_item
'+'
elsif A.include?(b_item)
'^'
else
' '
end
end.join
)
/ puts
移动到该方法调用的结果中。这会使print
/ puts
看起来不那么不合适,并允许您将结果用于其他事情。print
略有不同,因为最后不会打印换行符。 (你没有在问题中指明这个?)就个人而言,我会采用第一种方法,因为它最容易理解。
答案 1 :(得分:0)
B.map.with_index do |e, i|
next '+' if A[i] == e
A.index(e) ? '^' : ' '
end.join