最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 常用的Map和Set

    正文概述 掘金(HMGDCR598)   2021-01-01   419

    一: Map方法

    
    /* ====================================Map方法====================================================== */
    // 类对象
    // 和对象的区别是:对象的键一定是字符串,Map的键可以说任意类型
    let arr1 = [
        ['name','李白'],
        ['职业','诗人'],
        [false,'是布尔值'],
        [[],'是数组']
        
    ]
    let m = new Map(arr1)
    // console.log(m) // Map { 'name' => '李白', '职业' => '诗人', false => '是布尔值', [] => '是数组' }
    
    for (let [key,value] of m) { // 第一个参数是键,第二个是值
        // console.log('键:',key)
        // console.log('值:',value)
    }
    

    注意:

    • Map的方法:
      • map.has(keyStr)是用来判断map中是否存在属性keyStr,返回值是布尔值
      • map.set(keyStr,itemVal),keyStr是属性,itemVal是值,把itemVal存放到map中
      • map.delete('keyStr'),删除keykeyStr的数据
      • map.get('keyStr'),获取keykeyStr的数据
      • map.values(),获取map值得集合,通过[...map.values()]可以值的集合返回给数组
    • Map与普通对象的区别
      • Map属性可以是任意值,普通对象只能是字符串
      • Map区分字符'a'和字母a,普通对象不区分,后面的值会把前面的值覆盖
      例如:
      // 普通对象
      let obj = {
              a: '我是字母a',
              'a': '我是字符串a',
              1:'普通员工',
              2: '老板',
              1: '管理员',
              '2': 'VIP客户'
          }
          console.log(obj)
          //{1: "管理员",2: "VIP客户",a: "我是字符串a"}
            
      
      map.set(a,'我是字母a')会报错,需要改成map.set('a','我是字符串a')

    二:Set()方法

    /* ====================================Set方法====================================================== */
    // 类数组
    // 和数组的区别是:数组是[]包围,Set是{}包围,并且成员唯一
    let arr2 = [1,2,3,2,4,2,3,5]
    let s = new Set(arr2)
    // console.log(s) // Set { 1, 2, 3, 4, 5 } 
    
    // 实例1:求交集
    let temp21 = [1,2,4,2,3,1,5]
    let temp22 = [1,4,4,2,10,1,9]
    
    function bothHas(temp21,temp22) {
        let tempArr21 = new Set(temp21)
        let tempArr22 = new Set(temp22)
        return Array.from(tempArr21).filter(item => {
            return tempArr22.has(item)
         })
    }
    // 实例2:求差集
    function unBothHas(temp21,temp22) {
        let tempArr21 = new Set(temp21)
        let tempArr22 = new Set(temp22)
        return Array.from(tempArr21).filter(item => {
            return !tempArr22.has(item)
         })
    }
    console.log('data2==',bothHas(temp21,temp22))
    console.log('data3==',unBothHas(temp21,temp22))
    

    注意:

    • Set的方法:
      • set.add(val),添加值
      • set.delete(val),删除值
      • set.has(val),判断是否有val
    • Set的属性:
      • set.size返回集合所包含元素的数量

    起源地下载网 » 常用的Map和Set

    常见问题FAQ

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

    发表评论

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

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

    联系作者

    请选择支付方式

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