0
的陣列之間找到交集,我有兩個數組:如何數組和數組
array1 = [:key1, :key2]
array2 = [[:key1,2],[:key2,8],[:key3,1]]
我想有一個數組的數組中array2
其:key...
存在array1
。例如,對於上面:
result = [[:key1,2],[:key2,8]]
的陣列之間找到交集,我有兩個數組:如何數組和數組
array1 = [:key1, :key2]
array2 = [[:key1,2],[:key2,8],[:key3,1]]
我想有一個數組的數組中array2
其:key...
存在array1
。例如,對於上面:
result = [[:key1,2],[:key2,8]]
這滿足你的例子:
array2.select {|key,value| array1.include?(key) }
這個工程使用快速散片:
array1.zip(Hash[array2].values_at(*array1))
=> [[:key1, 2], [:key2, 8]]
它不會,如果鍵值工作在array2
不斷重複,因爲他們會跺腳在以前的例子。否則,如果他們不重複,這將非常快,特別是如果array2
增長。