找到 6691 篇文章 关于 Javascript
842 次浏览
向哈希表添加元素时,最关键的部分是冲突解决。我们将为此使用链式哈希法。您可以在这里阅读其他算法:https://en.wikipedia.org/wiki/Hash_table#Collision_resolution 现在让我们看看实现。我们将创建一个仅适用于整数的哈希函数以保持简单。但是可以使用更复杂的算法来哈希每个对象 − 示例put(key, value) { let hashCode = hash(key); for(let i = 0; i < this.container[hashCode].length; i ++) { // 用给定的键替换现有值 ... 阅读更多
336 次浏览
让我们设置一个简单的类,我们将使用它来定义所有这些方法。我们将创建一个容器对象来存储哈希表,并创建一个显示函数来显示表。请注意,对于冲突解决,我们将使用链式哈希法。显示函数获取表中的每个条目(哈希值),并打印与其关联的所有对。示例我们还将在原型上创建一个新类来存储键值对。class HashTable { constructor() { this.container = []; // 用空数组填充容器 // 可以 ... 阅读更多
1K+ 次浏览
哈希表是一种以关联方式存储数据的数据结构。在哈希表中,数据以数组格式存储,其中每个数据值都有其自己的唯一索引值。如果我们知道所需数据的索引,则访问数据会非常快。因此,它成为一种数据结构,其中插入和搜索操作非常快,而不管数据的大小如何。哈希表使用数组作为存储介质,并使用哈希技术生成要插入或定位元素的索引 ... 阅读更多
392 次浏览
以下是 MyMap 类的完整实现 − 示例class MyMap { constructor() { this.container = {}; } display() { console.log(this.container); } hasKey(key) { return key in this.container; } put(key, value) { this.container[key] = value; } delete(key) { if (this.hasKey(key)) { delete this.container[key]; return true; } return false; } get(key) { return this.hasKey(key) ? this.container[key] : undefined; ... 阅读更多
11K+ 次浏览
在这里,我们将在我们类中实现一个 forEach 函数,并接受一个回调函数,我们可以对每一对键值对调用该函数。让我们看看如何实现这样的函数 − 示例forEach(callback) { for (let prop in this.container) { // 调用回调函数:callback(key, value) callback(prop, this.container[prop]); } }您可以使用 − 示例const myMap = new MyMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); myMap.forEach((k, v) => console.log(`Key is ${k} and value is ${v}`));输出这将给出以下输出 −Key is key1 and value is value1 Key is key2 and value is value2ES6 ... 阅读更多
2K+ 次浏览
我们将实现一个 clear() 函数,该函数只清除容器的内容。例如, 示例clear() { this.container = {} }您可以使用 − 示例const myMap = new MyMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); myMap.display(); myMap.clear(); myMap.display();输出这将给出以下输出 −{ key1: 'value1', key2: 'value2' }您也可以在 ES6 map 中以相同的方式使用 clear 方法。例如,示例const myMap = new Map([ ["key1", "value1"], ["key2", "value2"] ]); console.log(myMap) myMap.clear(); console.log(myMap)输出这将给出以下输出 −Map { 'key1' => 'value1', 'key2' => 'value2' } Map {}阅读更多
144 次浏览
有时在处理字典时,我们只需要字典的键作为数组来执行某些任务。我们可以使用 Object.keys 轻松获取对象的属性。我们将使用此方法从我们的容器对象返回键。 示例keys() { return Object.keys(this.container); }您可以使用 − 示例const myMap = new MyMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); console.log(myMap.keys());输出这将给出以下输出 −[ 'key1', 'key2' ]在 ES6 Map 中,可以使用相同的方法。请注意,它返回一个 MapIterator 对象,您可以将其转换为数组或像 ... 阅读更多
2K+ 次浏览
我们将实现 get 方法,该方法在字典中搜索给定的键。 示例get(key) { if(this.hasKey(key)) { return this.container[key]; } return undefined; }同样,JS 对象在很大程度上是像字典一样实现的,因此拥有我们可以直接使用的大部分功能,而无需任何其他代码。这也经过了高度优化,因此您无需担心函数的运行时间。您可以使用 − 示例const myMap = new MyMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); console.log(myMap.get("key1")) console.log(myMap.get("key2")) console.log(myMap.get("key3"))输出这将给出以下输出 −value1 value2 undefined在 ES6 中,您可以使用 ... 阅读更多
21K+ 次浏览
要从字典中删除元素,首先需要检查该元素是否存在于字典中。我们将使用 hasKey 方法来实现这一点。然后,我们可以使用 delete 运算符直接删除它。我们将返回一个布尔值,以便调用此方法的地方可以知道键是否已经存在于字典中。 示例
delete(key) {
if(this.hasKey(key)) {
delete this.container[key];
return true;
}
return false;
}
您可以使用以下方法进行测试: 示例
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
myMap.display();
myMap.delete("key2");
myMap.display();
输出
这将给出输出... 阅读更多
浏览量 9K+
现在,我们将创建 put 方法,允许我们将键值对放入字典中。现在,我们将使用它来实现 put 方法。请注意,JS 具有类似于字典的对象。我们可以直接将容器的键属性设置为值。 示例
put(key, value) {
this.container[key] = value;
}
您可以使用以下方法测试此方法和前面的函数: 示例
const myMap = new MyMap()
myMap.put("key1", "value1")
myMap.put("key2", "value2")
myMap.display()
console.log(myMap.hasKey("key1"));
console.log(myMap.hasKey("key3"));
输出
这将给出以下输出:
{key1: "value1", key2: "value2"}
true
false
在 ES6 中,您可以使用 set 方法将键值对放入映射中。例如, 示例
const myMap ... 阅读更多