2010-10-14 13 views
37

Say Mam tablicę ciągówJak przeszukiwać tablicę w Ruby?

arr = ['sandra', 'sam', 'sabrina', 'scott', 'mark', 'melvin'] 

Jak będę szukać tej tablicy tak jak będzie aktywny obiekt rekord w Rails ja. Na przykład zapytanie "sa" zwróci ['sandra', 'sam', 'sabrina'].

Dzięki!

+0

w przypadku zastanawiasz się o takich rzeczach w przyszłości, sprawdź API Ruby http://ruby-doc.org/core/ – brad

+0

dzięki. zrobi – Tim

Odpowiedz

59
arr.grep(/^sa/) 
+0

działa idealnie, dzięki! – Tim

+16

Uh ... jeśli jest to tablica w pamięci, powyższe nie powoduje _any_ sql trafień. – Andrew

+0

Dla np. Jeśli muszę przeszukać całą nazwę 'sabrina', to raczej zapętlenie każdej nazwy, regex lub grep da trochę wydajności? – kamal

21
>> arr.select {|s| s.include? 'sa'} 
=> ["sandra", "sam", "sabrina"] 
9

Połączenie select sposobu i regex będzie działać

arr.select {|a| a.match(/^sa/)} 

Ten wygląda na prefiksów, ale może ona zostać zmieniona na podciągi lub cokolwiek innego.

Powiązane problemy