Methods if语句中的indexOf方法

Methods if语句中的indexOf方法,methods,indexof,Methods,Indexof,我认为当我在if语句中使用indexOf()时,上面的if语句是相同的,但得到的结果与我预期的不同 有人知道这三个问题的区别吗?假设这是一个JS问题,那么这三个问题都是不同的 if语句中没有针对indexOf的特殊逻辑。这与以往的逻辑是一样的。您只需要了解indexOf()的计算方式。第一个检查索引是真是假,因此只有第一个索引不合格,其他所有索引都会通过。第二个检查它是否不是-1,除了数组中没有的值之外,其他任何东西都可以通过,第三个检查元素的索引是否大于0,这样除了第一个索引和索引中没有的任何

我认为当我在
if
语句中使用
indexOf()
时,上面的if语句是相同的,但得到的结果与我预期的不同


有人知道这三个问题的区别吗?

假设这是一个JS问题,那么这三个问题都是不同的


if语句中没有针对indexOf的特殊逻辑。这与以往的逻辑是一样的。您只需要了解indexOf()的计算方式。第一个检查索引是真是假,因此只有第一个索引不合格,其他所有索引都会通过。第二个检查它是否不是-1,除了数组中没有的值之外,其他任何东西都可以通过,第三个检查元素的索引是否大于0,这样除了第一个索引和索引中没有的任何元素之外,所有元素都可以通过

假设这是一个JS问题,这三个问题都不同


if语句中没有针对indexOf的特殊逻辑。这与以往的逻辑是一样的。您只需要了解indexOf()的计算方式。第一个检查索引是真是假,因此只有第一个索引不合格,其他所有索引都会通过。第二个检查它是否不是-1,除了数组中没有的值之外,其他任何东西都可以通过,第三个检查元素的索引是否大于0,这样除了第一个索引和索引中没有的任何元素之外,所有元素都可以通过

indexOf
“内部if”不相关。只有这样做的结果(以及对用法的错误预期);替换为实际值将产生相同的效果。那么
indexOf
返回的值是什么?为什么这个值(以及由此产生的任何操作)100%解释了这个行为?我只是想知道数组中是否有某个元素,并将该元素推送到新数组中。同样,只有indexOf的结果与问题-?由于如果未找到该值,则该值将为-1,否则>=0,因此可以看出,所示的所有形式都会产生不同的逻辑行为:
if(x)
-除0之外的任何返回值,表示未找到该值,或未找到该值作为第一个值<代码>如果(x!=-1)-如果找到元素<代码>如果(x>0)-如果找到元素且不是第一个元素。有关
x
的值,请阅读文档。
indexOf
“inside if”与此无关。只有这样做的结果(以及对用法的错误预期);替换为实际值将产生相同的效果。那么
indexOf
返回的值是什么?为什么这个值(以及由此产生的任何操作)100%解释了这个行为?我只是想知道数组中是否有某个元素,并将该元素推送到新数组中。同样,只有indexOf的结果与问题-?由于如果未找到该值,则该值将为-1,否则>=0,因此可以看出,所示的所有形式都会产生不同的逻辑行为:
if(x)
-除0之外的任何返回值,表示未找到该值,或未找到该值作为第一个值<代码>如果(x!=-1)-如果找到元素<代码>如果(x>0)-如果找到元素且不是第一个元素。有关
x
的值,请阅读文档。是的,我很抱歉。这是一个问题。我用它们来检查数组中是否有某个元素,并将该元素推送到新数组中。所以我只是检查了一下是否存在某些因素,这意味着我认为所有这些都是真实的,但每种行为都是不同的。不需要道歉!只需阅读文档并从那里向后操作即可。在这种情况下,Array.contains()比元素的索引更相关。是的,我很抱歉。这是一个问题。我用它们来检查数组中是否有某个元素,并将该元素推送到新数组中。所以我只是检查了一下是否存在某些因素,这意味着我认为所有这些都是真实的,但每种行为都是不同的。不需要道歉!只需阅读文档并从那里向后操作即可。在本例中,Array.contains()比元素的索引更相关。
if(arr.indexOf(element))
if(arr.indexOf(element) !== -1)
if(arr.indexOf(element) > 0)