JavaScript Set

admin2年前 (2023-07-13)it知识515

JavaScript的Set(集合)是一组唯一值的集合。

每个值只能在Set中出现一次。

Set可以容纳任何数据类型的值。


如何创建Set

  1. 将数组传递给new Set()

  2. 创建一个新的Set, 然后使用add()方法添加值

  3. 创建一个新的Set,然后使用add()方法添加变量


新的Set()方法

将数组传递给新的Set()构造函数:

//创建 Set 
const letters = new Set(["a","b","c"]);

创建一个Set 并添加字面量值:


const letters = new Set();
letters.add("a");
letters.add("b");
letters.add("c");

创建一个Set 并添加变量:


//创建变量
const a = "a";
const b = "b";
const c = "c";

//创建Set
const letters = new Set();

//向Set 添加变量
letters.add(a);
letters.add(b);
letters.add(c);
letters.add(c);

add 添加多个相等元素,只有第一个会被保存。

forEach() 方法为每个Set 元素调用函数:

//创建 Set 
const letters = new Set(["a","b","c"]);
//列出所有条目
let text = "";
 letters.forEach(function(value){
    text += value;
})

values() 方法返回包含Set 中所有值的Iterator 对象:

letters.values()   //返回 [object Set Iterator]

现在可以使用Iterator 对象访问元素:

// 创建迭代器 
const myIterator = letters.values();
// 列出所有值
let text = "";
for (const entry of myIterator) {
   text += entry;
}

keys() 方法

Set 没有健。

keys() 返回与values()相同的结果。

这使得Set 与Map相兼容。

letters.keys() // 返回[object Set Iterator]

entries() 方法

entries()方法返回的是[value,value]值值对,而不是[key, value] 键值对。

//创建迭代器
const myIterator = letters.entries();
//列出所有条目
let text = "";
for (const entry of myIterator){
    text += entry;
}

对于Set typeof 返回object:

typeof letters;    //返回 object

对于 Set instanceof  Set;    // 返回 true

标签: JavaScript

相关文章

JavaScript 对象访问器

javascript 对象访问器计数器例子var obj = {      counter:0,  &nb...

JavaScript 可迭代对象

可迭代对象时可以使用for..of 进行迭代的对象从技术上讲,可迭代对象必须实现Symbol.iterator方法。遍历字符串你可以使用for..of循环来遍历字符串的元素:for(const&nbs...

JavaScript 的核心是 ECMAScript

JavaScript 的核心是 ECMAScript,具体来说,它包括以下几个方面:语法:JavaScript 的语法包括语句结构、变量定义、函数定义、条件语句、循环语句等。ECMAScript 标准...

JavaScript Map

Map 保存键值对,其中键可以是任何数据类型。Map会记住键的原始插入顺序。Map提供表示映射大小的属性。如何创建Map 可以通过以下方式创建Javascript 映射:将数组传递给new...

如何提高前端技术

以下是一些可以提高前端技术的建议:不断学习:前端技术不断发展,需要不断学习新的技术和框架,以保持自己的竞争力。可以通过阅读相关书籍、博客、视频教程等途径进行学习。实践项目:通过实践项目,可以更深入地理...

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案

Error: error:0308010C:digital envelope routines::unsupported出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。