gpt4 book ai didi

ruby-on-rails - 使用 .include 检查数组中的多个项目? -- ruby 初学者

转载 作者:数据小太阳 更新时间:2023-10-29 06:20:59 24 4
gpt4 key购买 nike

有没有更好的写法:

if myarray.include? 'val1' ||
myarray.include? 'val2' ||
myarray.include? 'val3' ||
myarray.include? 'val4'

最佳答案

使用集合交集(Array#:&):

(myarray & ["val1", "val2", "val3", "val4"]).present?

你也可以循环(any? 会在第一次出现时停止):

myarray.any? { |x| ["val1", "val2", "val3", "val4"].include?(x) }

这对于小数组来说没问题,在一般情况下你最好有 O(1) 谓词:

values = ["val1", "val2", "val3", "val4"].to_set
myarray.any? { |x| values.include?(x) }

对于 Ruby >= 2.1,使用 Set#intersect :

myarray.to_set.intersect?(values.to_set)

关于ruby-on-rails - 使用 .include 检查数组中的多个项目? -- ruby 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026300/

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