我有<form (keydown.enter)="$event.preventDefault()"></form>
个数组,我想算出这些数组中是否有一个公共值。如果我知道数组的数量,我可以做类似的事情:
n
但是,如果您不知道数组的数量,则不可能。到目前为止,我已经提出了以下建议:
a = [1,2,3]
b = [2,4,5]
c = [2,6,7]
x = a & b & c
x == [2]
但是,这似乎不是很有效。有更好的方法吗?
答案 0 :(得分:10)
但是,如果您不知道数组的数量,就不可能这样做。
实际上,Enumerable#reduce可以提供帮助:
[[1,2,3], [2,4,5], [2,6,7]].reduce(&:&) # => [2]
&:&
看起来很有趣,但仅仅是:
[[1,2,3], [2,4,5], [2,6,7]].reduce { |memo, el| memo & el } # => [2]
或者也可以按照@Jagdeep的建议进行操作:
[[1,2,3], [2,4,5], [2,6,7]].reduce(:&) # => [2]