最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Set与Map,它们你都了解吗?

    正文概述 掘金(星始流年)   2021-06-12   490

    这是我参与更文挑战的第12天,活动详情查看: 更文挑战 !

    ? 概论

    提起JS中的数据类型,相信大家很容易就能联想到Number、String、Boolean、Object等等;没错,以上都属于JS中的两大数据类型。除此之外,JS中还有很多的内置对象。像大家耳熟能详的Array、Math、Function等,也有很多我们不怎么常用的,比如Set、Map、WeakSet、WeakMap。这些对象虽不常用,但也并非毫无用处,一起来看!

    ? Set

    ? 基本介绍

    Set其实与Aaary极为相似,也是一种有序的引用对象。其与Array的最大区别在于Set内的值不可重复,而Array则无此限制。

    const myArray = [1,1,2,2]
    
    const mySet = new Set(myArray)
    console.log(mySet2) //输出 Set(2) {1,2}
    

    ? 常用API

    //获取Set长度
    mySet.size()
    //向Set中增加值
    mySet.add(3)
    //从Set中删除值
    mySet.delete(3)
    //遍历Set
    for (let item of mySet){
     console.log(item)
    }
    

    ? 使用技巧

    既然Set有内部值唯一的特性,name用来去重再也合适不过了。

    //数组去重
    let myArray = [1,1,2,2]
    
    myArray = Array.from(new Set(myArray))
    console.log(myArray) //输出 [1,2]
    
    //字符串去重
    let myStr = 'oovbyyu'
    
    myStr = Array.from(new Set(myStr)).join('')
    console.log(myStr) //输出"ovbyu"
    

    ? Map

    ? 基本介绍

    Map与Object很像,他们都是键值对。主要的区别在于: 1. Map内部的值是有序的(与插入时的顺序一致); 2. Map的键类型不受限制,可以是任意类型(包括函数,对象等等)。

    let myMap = new Map();
    let arrayA = [1,2]
    
    myMap.set(arrayA,2)
    
    console.log(myMap) //输出 Map(1) {Array(2) => 2}
    

    ? 常用API

    //获取Map长度
    myMap.size
    //向Map中增加值
    myMap.set('mapKey','mapVal')
    //从Map中删除值
    myMap.delete('mapKey')//成功则返回true,失败则返回false
    //获取Map中某键的值
    myMap.get(arrayA)
    //遍历Map
    for (let item of myMap){
     console.log(item)
    }
    

    ? 使用技巧

    Map内部值有序这一特性极为重要,如果存在需要在遍历Object时,确保遍历顺序一致,此时便可以使用Map。

    ? 结语

    实践出真知,大家多多尝试~


    起源地 » Set与Map,它们你都了解吗?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元