当前位置: 首页 > 知识库问答 >
问题:

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

糜正业
2023-03-14

编辑:下面由BlueSignal提供的链接是最适用的答案。它不仅解释了这种行为发生的原因,而且为所述问题提供了解决方案。

我有一个数组,我想确定是否所有元素都等于一个值。下面的代码似乎应该起作用,但没有。有人能解释一下吗?

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']);

任何信息都将是最受欢迎的!

共有1个答案

陈誉
2023-03-14

检查集合的大小是否为一:

new Set(array2).size === 1

正如其他答案/评论已经提到的那样,

new Set(array2) == new Set(['foo'])

返回false,因为不同的对象不相等。

理论上,你可以使用评论中提到的问题中的技巧来检查新集合(array2)新集合(['foo'])的等价性,但你不需要这样做,因为检查大小是否为1正是你需要的。

 类似资料:
  • 我试着比较两个物体,两个物体在每个区域上都有完全相同的值。 请注意,它们都打印相同的结果。 然而,当我比较每个对象中的字段时,和使用。等于时,返回值为false。 以下是比较数值的方法示例: 是否有其他方法可以比较和?所有其他字段在相同的equals方法中返回true(如预期)。 数字2={10,11}和字符串2={7c2cfc4e-5805-45ad-8687-4f2412a92e1d,d91b

  • 问题内容: 为什么m和t都是假的?比较Java中2个数组的正确方法是什么? 问题答案: 使用Arrays.equals方法。例:

  • 是否有一种惯用的方法来比较两个NumPy数组,它们将NaN视为彼此相等(但不等于NaN以外的任何东西)。 例如,我希望以下两个数组比较相等: 和以下两个数组进行比较: 我正在寻找一种可以产生标量布尔结果的方法。 以下方法可以做到这一点: 但它很笨重,并且创建了所有这些中间数组。 有没有一种方法可以更容易地观察眼睛,更好地利用记忆? 另外,如果有帮助的话,已知数组具有相同的形状和数据类型。

  • 问题内容: 在Java中工作,假设我有两个对象,这要归功于,我知道它们都是数组。进一步说,我想将这两个数组相互比较- 可能使用。有没有一种优雅的方法可以做到这一点,而无需借助详尽的if / else树来弄清楚需要使用哪种口味?我正在寻找比这更令人讨厌的东西: 问题答案: 您可以使用反射。 反射仅用于在运行时找到正确的方法,而不会引起您的回避。实际方法应该运行得很快。 显然,生产版本需要更强大的异常

  • 问题内容: 由于我不是Android开发中的佼佼者,因此我尝试了一些对自己和朋友的手机都有效的方法,但是我从市场上收到一些报告,认为它可能不适用于所有设备,并且做错了比较。无论如何。该项目很简单,它从sql获取命令,然后在游戏中玩家尝试完成该命令。所以我有2个数组。我一开始就这样称呼它: 在游戏过程中,如果玩家单击按钮,它将更改combo的值,例如combo [7] =“ 1”; 当他单击最后一个

  • 本文向大家介绍JavaScript 数组比较,包括了JavaScript 数组比较的使用技巧和注意事项,需要的朋友参考一下 示例 为了进行简单的数组比较,您可以使用JSON stringify并比较输出字符串: 注意:这仅在两个对象都可以JSON序列化并且不包含循环引用的情况下起作用。可能会抛出TypeError: Converting circular structure to JSON 您可以