首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是相当于C# HashSet的JavaScript?

问什么是相当于C# HashSet的JavaScript?
EN

Stack Overflow用户
提问于 2014-06-13 08:39:51
回答 6查看 82.5K关注 0票数 89

我有一个包含几千个整数键的列表。对于这个列表,我唯一需要做的就是判断一个给定值是否在列表中。

对于C#,我会使用HashSet来快速查找。JavaScript的等价物是什么?

最低支持级别: IE 9+、jQuery (当前)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-06-13 09:09:07

在幕后,JavaScript对象是用哈希表实现的。因此,您的Key:Value对应该是(your integer):true

常量时间查找函数可以实现为:

代码语言:javascript
复制
var hash = {
  1:true,
  2:true,
  7:true
  //etc...
};

var checkValue = function(value){
  return hash[value] === true;
};


checkValue(7); // => true
checkValue(3); // => false
票数 87
EN

Stack Overflow用户

发布于 2017-07-12 19:22:26

实际上,JavaScript提供了一个Set object,使用起来相当简单:

代码语言:javascript
复制
var set = new Set();
set.add(1);
set.add(2);

set.has(1)    // true

不幸的是,它与IE9不兼容。

票数 125
EN

Stack Overflow用户

发布于 2014-06-13 08:43:21

使用对象。要将关键点添加到集合中,请执行以下操作:

代码语言:javascript
复制
object[key] = true;

要测试密钥是否在集合中,请执行以下操作:

代码语言:javascript
复制
if (object.hasOwnProperty(key)) { ... }

要从集合中移除关键点,请执行以下操作:

代码语言:javascript
复制
delete object[key]
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24196067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档