当我检查相等性时,为什么每个都不能在if语句中工作?

时间:2017-04-26 00:27:39

标签: javascript

我试图使用每个数据在两个数组中找到公共数字。正如预期的那样,当我在if语句中检查相等性时,每个都不起作用。但是,它在我的第二个例子中确实有效。不幸的是,我不明白为什么。有人可以解释为什么第二个例子在第一个例子没有的地方有效吗

{{1}}

1 个答案:

答案 0 :(得分:5)

非工作版本:

arTwo.every(a => a === arOne[i])

英文:

  

arTwo中的每个项目都等于arOne中的当前项目。

如果arTwo中至少有两个不同的项目,那么这显然永远不会成立,因为两个不同的项目不能等于另一个项目。

工作版本:

!arTwo.every(a => a !== arOne[i])

英文:

  

并非arTwo中的每个项目都与arOne中的当前项目不匹配。

由于双重否定是超级混乱,请改写:

  

并非arTwo中的每个项目都与arOne中的当前项目不同。

重新整理:

  

arTwo中的某些项目与arOne中的当前项目相同。

这应该解释不同之处。

这意味着,some方法实际上更合适:

arTwo.some(a => a === arOne[i])