2012-01-23 2 views
0

Можно создать дубликат:
How to count duplicates in Ruby Arrays
Ruby: Compare 2 arrays for matches, and count the number of match instancesмассивов сравнение

Я начинаю с помощью рубинового языка. Предположим, у меня есть два массива:

a=["A", "B", "C", "D"] 
b=["C", "A", "X", "Y", "F"] 

Я хотел бы подсчитать количество дублированных элементов двух массивов. Чтобы достичь этого, идея, которую я придумал, выглядит следующим образом:

nr_of_duplicates = (a- (a - b)).size 

Есть ли лучший способ достичь этого?

+1

http://stackoverflow.com/questions/5013880/ruby-compare-2-arrays-for- match-and-count-the-number-of-match-instance, это может помочь с ответом –

+0

http://stackoverflow.com/questions/1765368/how-to-count-duplicates-in-ruby-arrays другой для достижения того же –

+1

«Это больше похоже на дискуссию, чем на вопрос» - это причина для закрытия. Я избавлюсь от него для вас, так как этот вопрос не обсуждается, он ищет лучший подход. – paxdiablo

ответ

3

Существует уже метод, определенный в классе Array, для этого называется '&':

ary & other_ary → new_ary 

Set Intersection—Returns a new array containing elements common to the two arrays, with no duplicates. 

    [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ] 
+0

Спасибо, это хорошо. –

Смежные вопросы