欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6 Set和Map数据结构

程序员文章站 2022-07-13 09:12:11
...

Set

一、Set简介

1. set本身是一个构造函数,用来生成 set 数据结构
2. set类似于数组,成员的值都是唯一的,没有重复的值
3. 向set中添加成员时,不会发生类型转换
4. 向set中添加的对象总是不想等

二、基本用法

常用的属性和方法属性:
属性:size:返回set实例的成员总数
方法:
**1、add():**添加某个值,返回set本身
通过add()方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值
const set1 = new Set();
// 往set1中添加数据
set1.add(100);
set1.add(“A string”);
set1.add({name:“Helen”});
set1.add(true);
// set1.add(100); //不可以重复添加,无作用
console.log(set1);
ES6 Set和Map数据结构
ES6 Set和Map数据结构
ES6 Set和Map数据结构
当我们打印{name:“Herry”},最后的结果是false,因为它匹配的不是值,而是地址,地址都是唯一的,所以结果一直为false
2、delete():删除某个值,返回一个布尔值,判断删除是否成功
ES6 Set和Map数据结构
ES6 Set和Map数据结构
3、for…of遍历set
const set1 = new Set();
set1.add(100);
set1.add(“A string”);
set1.add({name:“Helen”});
set1.add(true);
// for…of遍历set
for(let item of set1){
console.log(item)
}
ES6 Set和Map数据结构
4、forEach():使用回调函数遍历每个成员
该方法传入一个回调函数callback,还可以传入一个this,用于回调函数之中:
回调函数callback中有三个参数:①元素值;②元素索引;③将要遍历的对象;
const set1 = new Set();

    // 往set1中添加数据
    set1.add(100);
    set1.add("A string");
    set1.add({name:"Helen"});
    set1.add(true);
    
    // forEach遍历
    set1.forEach((value) =>{
        console.log(value)
    })

ES6 Set和Map数据结构
5、将set转换为array数组
// 将set转换为array数组
const setArray = Array.from(set1);
console.log(setArray)
ES6 Set和Map数据结构
**6、has():**返回一个布尔值,表示该值是否为set成员
let set = new Set([1,2,3,3,3,3]);
console.log(set.has(5)); //false
**7、clear():**清除所有成员,没有返回值
**8、keys():**返回键名的遍历器
**9、values():**返回键值的遍历器
**10、entries():**返回键值对的遍历器

Map

键对值:与对象不同的是键和值可以是任何类型
Object 结构提供了“字符串—值”的对应
Map 结构提供了“值—值”的对应

常用的属性和方法

属性:size:返回map结构的成员总数
方法:
**1、set(key,value):**设置键名key对应的键值value,然后返回整个map结构,如果key已经有值,则键值会被更新,否则就新生成该键
**2、get(key):**读取key对应的键值,如果找不到key,则返回undefined
**3、has(key):**返回一个布尔值,表示某个键是否在当前map对象中
**4、delete(key):**删除某个key,返回true,如果删除失败,返回false
**5、clear():**清除所有成员,没有返回值
**6、keys():**返回键名的遍历器
**7、values():**返回键值的遍历器
**8、entries():**返回键值对的遍历器
**9、forEach():**遍历map的所有成员
const map1 = new Map();
// 设置key键
const key1 = “some string”,
key2 = {},
key3 = function(){};
// 为key设置value值
map1.set(key1,‘Value of key1’);
map1.set(key2,‘Value of key2’);
map1.set(key3,‘Value of key3’);

    // forEach遍历map1
    map1.forEach((value,key) =>{
        console.log(`${key} = ${value}`)
    })

ES6 Set和Map数据结构
10、将map1转换为正常的数组
// 将map1转换为正常的数组
const keyValueArray = Array.form(map1);
console.log(keyValueArray);
ES6 Set和Map数据结构
11、将map1中的key转换为数组
// 将map1中的key转换为数组
const keyArray = Array.from(map1.keys());
console.log(keyArray);
ES6 Set和Map数据结构
12、将map1中的value转换为数组
// 将map1中的value转换为数组
const valueArray = Array.from(map1.values());
console.log(valueArray);
ES6 Set和Map数据结构

相关标签: 前端