Mam dwie tablicePorównaj dwie tablice i Usuń unikatowych wartości
ordered = [1, 2, 3, 4, 5]
some_list = [2, 6, 4]
chciałbym porównać dwie tablice, a następnie znaleźć duplikaty, a tworzą go do nowej tablicy. Sztuką jest utrzymanie tablicy w kolejności podanej w tablicy ordered
.
new_array = [2, 4] # Result should be this
Pomyślałem o jednym sposobie na to, jednak myślę, że wydajność można poprawić.
ordered.each do |value1|
some_list.include? value1
new_array << value1
end
end
Czy mogę to poprawić?
Wyniki testów
user system total real
using & 0.210000 0.000000 0.210000 ( 0.212070)
using select 0.220000 0.000000 0.220000 ( 0.218889)
To ładnie składnia lakoniczny, ale jest ona podniesiona do zoptymalizowanego kodu w porównaniu do jego pętli, czy będzie to w końcu jest równoważna prędkość ale jeszcze ładniejszy wpisać? –
Używam testów porównawczych do porównywania dwóch, jak mówię ... – jason328
ta odpowiedź nie będzie utrzymywać porządku. Zaktualizowałem go do 'new_arry = ordered & some_list', dzięki czemu zachowuje uporządkowaną kolejność zdefiniowaną w tablicy' ordered'? kolejność elementów w nowej tablicy zależy od pierwszej tablicy. –