gpt4 book ai didi

arrays - 通过 Ruby 中的第一个字母搜索数组?

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:16 27 4
gpt4 key购买 nike

我有一个数组:

dictionary = [ 
'abnormal',
'arm-wrestling',
'absolute',
'airplane',
'airport',
'amazing',
'apple',
'ball'
]

如何通过首字母搜索前五个匹配项(如果没有五个匹配项则搜索更少)?

input = "a"
match = dictionary.select { |a| a.match(input) }
puts match

匹配返回

["abnormal", "arm-wrestling", "absolute", "airplane", "airport", "amazing", "apple", "ball"]

但我需要它返回

["abnormal", "arm-wrestling", "absolute", "airplane", "airport"]

并且不要仅仅因为它包含“a”而返回像 ["ball"] 这样的词。

最佳答案

如果我没理解错的话,你需要前五个以 'a' 开头的单词。

您可以使用 String#start_with? :

dictionary.select { |word| word.start_with?('a') }.first(5)

为了获得更好的性能,您可以lazy 选择这五个词。如果您正在执行搜索的集合越来越大,这将特别有意义:

dictionary.lazy.select { |word| word.start_with?('a') }.first(5)

对于不区分大小写的选择:

dictionary.lazy.select { |word| word.start_with?('a', 'A') }.first(5)

关于arrays - 通过 Ruby 中的第一个字母搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com