java 集合包含集合,检查集合是否包含Java列表

I have a set that I've added a list to.

var a = new Set();

a.add([1]);

Now I check if [1] exists in a:

a.has([1]);

> false

Based on the spec, this might be happening because if type is same for two objects being compared:

Return true if x and y refer to the same object. Otherwise, return

false.

And this also happens:

[1] == [1];

> false

So it might be that the Set .has() is using == for comparing equality (not sure though). Is there a .contains() method for Set() in JS like Java has?

解决方案

You can't compare references like arrays and objects for equality (you can compare values, though).

The way you're doing it, you're checking against a different reference, even though the values appear to be the same.

Do something like this:

var a = new Set();

var b = [1];

a.add(b);

a.has(b); // => true

So it might be that the Set .has() is using == for comparing equality (not sure though)

Not necessarily. [1] === [1] (using the strict equality operator) also returns false.

Is there a .contains() method for Set() in JS like Java has?

Not in the way you're imagining it. You can do some sort of deep comparison, as mentioned in the first link in this answer.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值