【发布时间】:2017-01-06 16:30:09
【问题描述】:
编辑: 微弱信号在下面提供的链接是最适用的答案。它不仅解释了为什么会发生这种行为,而且还为所述问题提供了解决方案。
我有一个数组,我想确定是否所有元素都等于一个值。以下代码似乎应该可以工作,但事实并非如此。谁能解释一下?
var array1 = ['foo', 'bar', 'baz'];
var array2 = ['foo', 'foo', 'foo'];
//I expect this to be false and it is
new Set(array1) == new Set(['foo']);
//I expect this to be true and it is not
new Set(array2) == new Set(['foo']);
欢迎提供任何信息!
【问题讨论】:
-
Why are two identical objects not equal to each other? 的可能副本,这里有一个 how-to compare,也链接在副本中
-
如果您有两个完全相同的对象并不重要 -
object1 == object2只有当它们实际上是完全相同的对象时才会评估为真。 -
您正在比较对象,但它们与您可能认为的不同。看看here
-
你应该检查集合的大小是否为1。
标签: javascript set