我有一個數組:用Ruby中的第一個字母搜索數組?
dictionary = [
'abnormal',
'arm-wrestling',
'absolute',
'airplane',
'airport',
'amazing',
'apple',
'ball'
]
如何搜索前五場比賽,或者如果沒有五場比賽更少,通過他們的第一個字母?
input = "a"
match = dictionary.select { |a| a.match(input) }
puts match
match
回報
["abnormal", "arm-wrestling", "absolute", "airplane", "airport", "amazing", "apple", "ball"]
,但我需要它返回
["abnormal", "arm-wrestling", "absolute", "airplane", "airport"]
,不返回的話就像["ball"]
只是因爲它包含 「A」。
您的字典已經排序? – Stefan
字典應該保持原樣。它不能改變。它應該按字典中給出的順序返回所有結果,即使它們並不總是按字母順序排列。 –
我不想改變你的數組,但是_if_你的數組是排序的,你可以使用'bsearch_index'來查找第一個單詞的索引而不是遍歷整個數組。 – Stefan