Jon*_*len 58 javascript jquery hashset
我有几千个整数键的列表.我需要对此列表执行的唯一操作是说明给定值是否在列表中.
对于C#,我会用a HashSet来快速查找.什么是JavaScript等价物?
最低支持级别:IE 9 +,jQuery(当前)
Lex*_*obs 63
在引擎盖下,JavaScript对象使用哈希表实现.所以,你的Key:Value配对会是(your integer):true
恒定时间查找功能可以实现为:
var hash = {
1:true,
2:true,
7:true
//etc...
};
var checkValue = function(value){
return hash[value] === true;
};
checkValue(7); // => true
checkValue(3); // => false
Run Code Online (Sandbox Code Playgroud)
小智 58
实际上JavaScript提供了一个Set对象,使用起来非常简单:
var set = new Set();
set.add(1);
set.add(2);
set.has(1) // true
Run Code Online (Sandbox Code Playgroud)
不幸的是,它与IE9不兼容.
Bar*_*mar 31
使用对象.要为集合添加密钥,请执行以下操作:
object[key] = true;
Run Code Online (Sandbox Code Playgroud)
要测试密钥是否在集合中,请执行以下操作:
if (object.hasOwnProperty(key)) { ... }
Run Code Online (Sandbox Code Playgroud)
要从集合中删除密钥,请执行以下操作:
delete object[key]
Run Code Online (Sandbox Code Playgroud)
您可以只使用常规JavaScript对象和'in'关键字来查看该对象是否具有某个键.
var myObj = {
name: true,
age: true
}
'name' in myObj //returns true;
'height' in myObj // returns false;
Run Code Online (Sandbox Code Playgroud)
或者,如果您知道您将在对象中创建可能在JavaScript对象属性中构建的键,请使用...
var myObj = {
name: true,
age: true
}
myObj.hasOwnProperty('name') //returns true;
myObj.hasOwnProperty('height') // returns false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52485 次 |
| 最近记录: |