美文网首页
ES6-新增的两种数据类型

ES6-新增的两种数据类型

作者: 你怀中的猫 | 来源:发表于2022-06-05 16:30 被阅读0次

1、Set

  • Set 本质上也是对象,跟数组类似
  • 但是 set中没有重复的元素,如果有,则自动删除
  • 声明set时,需要在set构造函数中,传入一个数组
  • set无法像数组一样取出里面的元素,所以只能使用 for of 迭代
    let arr = [1,1,2,2,3,3,4,4,5,5]
    let set2 = new Set(arr);
    console.log(arr);
    //去重
    console.log(set2);  // 1,2,3,4,5

set的操作方法

  • set转数组 Array.from()
  • 根据set的特性,可以进行数组去重
    let arr = [1,1,2,2,3,3,4,4,5,5]
    let set1 = new Set(arr);
    //转数组
    arr = Array.from(set1);
    console.log(arr);

set的属性和方法

  • 1、获取set的长度 size属性 , 跟数组中的length相似
  • 2、给set添加元素 add() , 跟数组的push相似
  • 3、删除set指定元素 delate()
  • 4、判断元素是否在set中 has
  • 5、清空set clear()
    let arr = [1,2,3,4,5]
    let set1 = new Set(arr);
    //1、获取set的长度 size属性  跟数组中的length相似
    console.log(set1.size);

    //2、给set添加元素 add()  跟数组的push相似
    set1.add(6);
    console.log(set1);

    //3、删除set指定元素 delate()
    set1.delete(2);
    console.log(set1);

    //4、判断元素是否在set中 has
    console.log(set1.has(2));  //false
    console.log(set1.has(4));  //true


    //5、清空set  clear()
    // set1.clear();
    // console.log(set1);

2、Map

  • map 跟对象类型几乎一摸一样,也是一种键值对的组合
  • 但是 map的键(key) 可以是任何类型,包括数组和对象
  • 像 对象或者map 这种数据类型,都是键值对的解构
  • 这种结构也叫 Hash结构

map的属性和方法

  • 1、设置Map对象 set
  • 2、获取键对应的值 get
  • 3、判断Map中是否包含键对应的值 has
  • 4、返回Map对象键/值对的数量 size
  • 5、删除Map中的某一个键/值对 delete
  • 6、移除Map对象所有的键/值对 clear
// 创建Map
    let myMap = new Map();
    
    // 设置Map对象set
    myMap.set('Goole','1');
    myMap.set('IE','2');
    myMap.set('HuoHu','3');

    // 获取键对应的值get
    console.log(myMap.get('Goole'));  // 1

    // 判断Map中是否包含键对应的值has
    console.log(myMap.has('IE'));  //true
    console.log(myMap.has('hhss')); //false

    // 返回Map对象键/值对的数量size
    console.log(myMap.size);  //3

    // 删除Map中的某一个键/值对delete
    console.log(myMap.delete('HuoHu'));
    console.log(myMap);

    // 移除Map对象所有的键/值对clear
    console.log(myMap.clear());
    console.log(myMap);

迭代map

//声明Map对象
    let myMap = new Map();
    //设置Map对象
    myMap.set('Goole','1');
    myMap.set('IE','2');
    myMap.set('HuoHu','3');
    
    // 迭代 Map 中的 key
    for(let key of myMap.keys()){
        console.log(key);
    }
    console.log(myMap.keys());
    console.log(myMap);

    // 迭代 Map 中的 value
    for(let key of myMap.values()){
        console.log(key);
    }
    console.log(myMap.values());
    // 迭代 Map 中的 key => value
    for(let key of myMap.entries()){
        console.log(key);
    }

    // 使用对象解析
    for(let [key,value] of myMap){
        console.log(key,value);
    }

通常使用 forEach 循环map

  • 1、第一个参数 是 value
    2、第二个参数 是 key
    3、与参数名叫什么无关
let m1 = new Map();m1.forEach((value,key) =>{
        console.log(value,key);
    })

相关文章

网友评论

      本文标题:ES6-新增的两种数据类型

      本文链接:https://www.haomeiwen.com/subject/dwvrmrtx.html