我的问题可能听起来很愚蠢,但这是根本性的。我试图比较数组的元素,我得到的结果不准确。
$(document).ready(function(){
var array =["a","a","a"]
console.log(array[0]===array[1]===array[2])
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
为什么它会返回false?我该怎么做才能得到正确的结果?
答案 0 :(得分:5)
让我们打破这个......
'a'==='a'==='a'
('a'==='a')==='a'
true==='a'
false
如果您想将数组中的多个元素与特定值进行比较,我建议使用every()
方法:
var array = ['a', 'a', 'a'];
console.log(array.every((value) => value === 'a'));
&#13;
答案 1 :(得分:4)
array[0]===array[1]
返回true。然后你基本上说true===array[2]
,这是假的。
你可以说array[0] === array[1] && array[0] === array[2]
我认为它在逻辑上是相同的。
答案 2 :(得分:3)
问题原因:
由于:
a === b === c
与:
相同(a === b) === c
因此,您将一个比较的结果(a
和b
之间)(true
或false
)与最后一项{{1}进行比较}}
<强>解决方案:强>
要比较这三个项目,请使用逻辑c
运算符,如下所示:
and
使用逻辑a === b && b === c
检查and
是否为a
以及b
是否等于b
(或c
是否为a
等于c
)。如果一个comparaison失败,那么整个测试失败,如果没有,那么这三个项目是相等的。