algo/javascript/18_hashmap/HashTable.html
dreamapple 22f88789b5 1.添加JavaScript版本的SkipList的实现
2.修改JavaScript版本hashmap文件的序号
2018-12-04 17:12:03 +08:00

62 lines
1.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
/*
最基本的散列表
*/
class HashTable {
constructor() {
this.table=[];
}
//散列函数
loseHashCode(key){
var hash=0;
//从ASCII表中查到的ASCII值加到hash中
for (var i=0;i<key.length;i++){
hash+=key.charCodeAt(i);
}
//为了得到比较小的数值我们会用hash和任意数除余
return hash%37;
}
//向散列表增加一个新的项
put(key,value){
var position=this.loseHashCode(key);
console.log(position+'-'+key);
this.table[position]=value;
}
//根据键从散列表删除值
remove(key){
this.table[this.loseHashCode(key)]=undefined;
}
//返回根据键值检索到的特定的值
get(key){
console.log(this.table[this.loseHashCode(key)])
}
print(){
for (var i=0;i<this.table.length;++i){
if (this.table[i]!==undefined){
console.log(i+':'+this.table[i]);
}
}
}
}
var hash = new HashTable();
hash.put('Gandalf', 'gandalf@email.com');
hash.put('John', 'johnsnow@email.com');
hash.put('Tyrion', 'tyrion@email.com');
hash.remove('Gandalf')
hash.get('Gandalf')
hash.get('Tyrion')
hash.print()
//
</script>
</body>
</html>