繁体   English   中英

使用 Set 比较数组中的唯一项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM