[英]Comparing unique items in arrays using Set
编辑:下面由微弱信号提供的链接是最适用的答案。 它不仅解释了为什么会发生这种行为,而且还为所述问题提供了解决方案。
我有一个数组,我想确定所有元素是否都等于一个值。 下面的代码看起来应该可以工作,但它没有。 谁能解释一下?
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']);
任何信息将是最受欢迎的!
检查集合的大小是否为一:
new Set(array2).size === 1
正如其他答案/评论已经提到的,
new Set(array2) == new Set(['foo'])
返回 false 因为不同的对象不相等。
理论上,您可以使用评论中提到的问题中的技术检查new Set(array2)
和new Set(['foo'])
的等价性,但您不需要这样做,因为检查大小is 1 正是您所需要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.