【问题标题】:How does the in operator work with sets in JavaScript? [duplicate]in 运算符如何与 JavaScript 中的集合一起使用? [复制]
【发布时间】:2021-08-19 07:40:46
【问题描述】:

为什么会出现以下代码:

'%' in new Set('%');

返回假?

集合上的 in 运算符是否比数组上更快?

【问题讨论】:

  • 它的工作方式与数组相同:它没有。
  • the documentation 的哪一部分让您想到 in 可以与集合一起使用?
  • 文档没有指定任何类型,但可能是因为 the in operator in python 的行为类似于 javascript 中的 Set.prototype.hasArray.prototype.includes

标签: javascript set


【解决方案1】:

如果指定属性在指定对象或其原​​型链中,则 in 运算符返回 true。

它不检查某物是否属于一个集合。您应该为此使用Set.prototype.has

const obj = { someKey: 'someValue' };
'someKey' in obj; // true
'someOtherKey' in obj; // false

const set = new Set([1,2,3]);
set.has(1); // true
set.has(4); // false

关于性能,请参考this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-29
    • 2011-07-29
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2014-06-12
    • 2012-09-27
    • 1970-01-01
    相关资源
    最近更新 更多