找到 6691 篇文章 关于 Javascript
2K+ 阅读量
让我们创建一个 MyMap 类,以便它不会隐藏 JS 中的实际 Map 类。我们将创建一个容器对象,它将跟踪我们添加到映射中的所有值。我们还将创建一个 display 函数,该函数会为我们打印映射。 示例class MyMap { constructor() { this.container = {}; } display() { console.log(this.container); } }在 ES6 中,您可以使用 Map 类直接创建一个字典。例如, 示例const map1 = new Map(); const map2 = new Map([ ["key1", "value1"], ["key2", "value2"] ]);检查是否 ... 阅读更多
1K+ 阅读量
在计算机科学中,关联数组、映射、符号表或字典是一种抽象数据类型,由 (键,值) 对的集合组成,使得每个可能的键在集合中最多出现一次。请注意,字典也称为映射。字典问题是一个经典的计算机科学问题:设计一个数据结构的任务,该数据结构在“搜索”、“删除”和“插入”操作期间维护一组数据。字典有许多不同的实现类型。 哈希表实现 基于树的实现(自平衡和非平衡树) 基于列表的实现何时使用字典字典不是万能的 ... 阅读更多
89 阅读量
以下是 MySet 类的完整实现。 示例class MySet { constructor() { this.container = {}; } display() { console.log(this.container); } has(val) { return this.container.hasOwnProperty(val); } add(val) { if (!this.has(val)) { this.container[val] = val; return true; } return false; } delete(val) { if (this.has(val)) { delete this.container[val]; return true; } ... 阅读更多
2K+ 阅读量
2 个集合的差意味着被减去的集合应该将其所有元素从被减去的集合中移除。因此,我们可以遍历第二个集合,并从第一个集合中移除其中存在的所有元素。 示例static difference(s1, s2) { if (!s1 instanceof MySet || !s2 instanceof MySet) { console.log("给定的对象不是 MySet 类型"); return null; } let newSet = new MySet(); s1.forEach(elem => newSet.add(elem)); s2.forEach(elem => newSet.delete(elem)); return newSet; }您可以使用以下方法进行测试 - 示例const testSet1 = ... 阅读更多
3K+ 阅读量
添加 2 个集合的操作称为并集。您需要将一个集合中的每个对象添加到另一个集合中,同时检查重复项。我们只需使用我们已经实现的 2 种方法来实现此方法即可。我们将此函数实现为静态函数,因为我们不想更改现有集合,而是创建并返回一个新的集合。首先,我们需要检查传递给它的对象是否确实是 MySet 类的实例。 示例static union(s1, s2) { if (!s1 instanceof MySet || !s2 instanceof MySet) { console.log("给定的对象 ... 阅读更多
526 阅读量
在我们实现的集合中,我们可以在我们的类中创建一个 for each 函数,并接受一个回调,我们可以对每个元素调用该回调。让我们看看如何实现这样的函数 - 示例forEach(callback) { for (let prop in this.container) { callback(prop); } }您可以使用以下方法进行测试 - 示例const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.forEach(elem => console.log(`Element is ${elem}`));输出这将给出输出 -元素是 1 元素是 2 元素是 5ES6 Set API 也使用 forEach 方法提供了相同的功能。
102 阅读量
clear 方法非常简单。我们可以将容器变量重新分配给一个新对象,然后集合将为空。这可以按如下方式实现 - 示例clear() { this.container = {}; }您可以使用以下方法进行测试 -示例const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.display(); testSet.clear(); testSet.display();输出这将给出输出 -{ '1': 1, '2': 2, '5': 5 } { }
125 阅读量
delete 方法检查集合中是否已存在某个值,如果存在,则将其从集合中删除。我们可以按如下方式实现它 &minusl 示例delete(val) { if (this.has(val)) { delete this.container[val]; return true; } return false; }您可以使用以下方法进行测试 - 示例const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.delete(5); testSet.delete(2); testSet.display(); console.log(testSet.has(5)); console.log(testSet.has(20)); console.log(testSet.has(1));输出这将给出输出 -{ '1': 1} False False True在 ES6 中,您可以按如下方式使用 delete 函数 - 示例const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.delete(5); ... 阅读更多
136 阅读量
add 方法检查集合中是否已存在某个值,如果不存在,则将其添加到集合中。我们可以按如下方式实现它 - 示例add(val) { if (!this.has(val)) { this.container[val] = val; return true; } return false; }您可以使用以下方法进行测试 - 示例const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.add(2); testSet.display(); console.log(testSet.has(5)); console.log(testSet.has(20)); console.log(testSet.has(1));输出这将给出输出 -{ '1': 1, '2': 2, '5': 5 } True False True请注意,即使我们尝试添加 2 两次,它也只添加了一次。如果您尝试记录 ... 阅读更多
468 阅读量
让我们创建一个 MySet 类,以便它不会隐藏 JS 中的实际 set 类。我们将创建一个容器对象,它将跟踪我们添加到集合中的所有值。我们还将创建一个 display 函数,该函数会为我们打印集合。 示例class MySet { constructor() { this.container = {}; } display() { console.log(this.container); } }在 ES6 中,您可以使用 Set 类直接创建一个集合。例如, 示例const set1 = new Set(); const set2 = new Set([1, 2, 5, 6]);检查成员资格has 方法检查 ... 阅读更多