es6中Set与Map

Set定义:Set是类似于数组,成员对象都是唯一的

属性以及方法:

  • size  返回集合的元素个数
  • add  增加一个新元素,返回当前集合
  • delete  删除元素,返回 Boolean 值
  • has  检测集合中是否包含某个元素,返回 Boolean 值
  • clear  清空操作,返回undefined

举例应用说明:

日常生活中,当我们遇到需要去重的数组,而不想通过写遍历去去重时,便可用过Set进行去重

   let arr=[1,1,2,3,4,7,6,5,3]
    // 法1
    let arr1=[...new Set(arr)]
    // 法2
    let arr2=Array.from(new Set(arr))
    console.log("arr",arr)
    console.log("arr1",arr1)
    console.log("arr2",arr2)

Map定义:Map是类似于对象,区别于普通对象的是--普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型

属性以及方法:

  • size  返回Map的元素个数
  • set  增加一个新元素,返回当前Map
  • get  返回键名对象的键值
  • delete  删除元素,返回 Boolean 值
  • has  检测Map中是否包含某个元素,返回 Boolean 值
  • clear  清空操作,返回undefined

举例应用说明:

当我们声明的key不为字符串或数字时,通过Map去声明

  let mapObj=new Map()
    mapObj.set('name','nicoz')
    mapObj.set({age:'8'},false)
    // 可将其转为一个二维数组,数组长度为map的size,
    // 二维数中每一项为key,value组成的长度为2的数组
    let arrfrMap=[...mapObj]
    console.log('mapObj',mapObj,'arrfrMap',arrfrMap)

 Map也可与二维数组之间相互转换

    let mapfrArr=new Map([['name','nicoz'],['eat','apple']])
    console.log('mapfrArr',mapfrArr)

 Map也可由Object转换

  let obj={
      name:"nini",
      sex:'female'
    }
    let mapfrObj = new Map(Object.entries(obj))
    console.log('mapfrObj',mapfrObj)

 

posted @   南无、  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示