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