开发者社区> 问答> 正文

数组是否包含来自另一个数组的任何值?

测试数组是否包含第二个数组中的任何元素的最有效方法是什么?

下面的两个示例试图回答问题,但确实foods包含来自的任何元素cheeses:

cheeses = %w(chedder stilton brie mozzarella feta haloumi reblochon) foods = %w(pizza feta foods bread biscuits yoghurt bacon)

puts cheeses.collect{|c| foods.include?(c)}.include?(true)

puts (cheeses - foods).size < cheeses.size

展开
收起
保持可爱mmm 2020-02-06 23:30:08 469 0
1 条回答
写回答
取消 提交回答
  • (cheeses & foods).empty? 正如Marc-AndréLafortune在评论中说的那样,&线性工作时间为any?+ ,而+ 则为include?平方。对于更大的数据集,线性时间会更快。对于小型数据集,any?+ include?可能更快,如Lee Jarvis的回答所示-可能是因为&分配了一个新的Array,而另一种解决方案却没有,并且它作为返回布尔值的简单嵌套循环工作。

    问题来源于stack overflow

    2020-02-06 23:30:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载