当前位置:  开发笔记 > 编程语言 > 正文

如何确定数组是否包含其中一个元素

如何解决《如何确定数组是否包含其中一个元素》经验,为你挑选了2个好方法。

我有一个阵列

address = ["kuwait", "jordan", "United Arab Emirates", "Bahrain"]
location = "india"
order.country = "jordan" 
address.include? (location || order.country) #=> false

我的OR病情不在这里.请指导我错在哪里.



1> shivam..:

为什么你的代码不起作用

在下面的代码行中

address.include? (location || order.country)

首先,location || order.country进行评估,"india"根据您的示例得出结果.然后它检查它是否存在于地址数组中,基本上是:

address.include? "india"

这是false因为你得到false result.

同样,如果您尝试:

address.include? (order.country || location)

它将true在检查时返回address.include? "jordan".因此,这不是实现目标的正确方法.

Array#include这个例子的正确使用方法是什么?

address.include?(location) || address.include?(order.country)


我明白那个.我本人建议你在答案中使用`&`.然而,我的回答集中在解释当前代码的错误以及如何纠正.

2> Aleksei Mati..:

有很多方法可以实现此功能:

!(address & [location, order.country]).empty?
(address & [location, order.country]).any?
[location, order.country].any? { |addr| address.include? addr }

你的代码失败,因为location || order.country被评估为truthy(||在这种特殊情况下调用的第一个参数,因为"india"truthy.)虽然你希望它被视为"数组包括这个或数组包含那个",但它实际上是"数组包括结果'this or that',显然"india"是给出的例子".

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有