ES6 - Map对象 和 Set对象

Map对象 和 Set对象

Map对象

new Map([a])

let arr = [
        ["a",1],
        ["b",2],
        ["c",3]
 ]
let m = new Map(arr);

object与map的比较

  • 相同点
    都允许你按键存取一个值、删除键、检测一个键是否绑定了值
  • 不同点
    • Object的键只能是字符串或者 Symbols Map 的键可以是任意值,包括函数、对象、基本类型
    • Map 中的键值是有序的,而添加到对象中的键则不是 因此,当对它进行遍历时,Map 对象是按插入的顺序返回键值
    • 可以通过 size
      属性直接获取一个 Map 的键值对个数 Object的键值对个数只能手动计算
    • Object有自己的原型,原型链上的键名可能和自己在对象上的设置的键名产生冲突
    • Map 在涉及频繁增删键值对的场景下会有些性能优势

方法

  • .size
    对象的长度
let arr = [
            ["a",1],
            ["b",2],
            ["c",3]
     ]
	let m = new Map(arr);
	console.log(m.size)
  • .clear( )
    清空指定对象的内容,无返回值
m.clear();
console.log(m);
  • .delete( )
    删除指定的元素,自带返回值
    参数:key 数据的key值
    true || fasle 提示是否删除成功
console.log(m.delete("a"));
  • .get(key)
    通过key值 获取某一项的值
    参数: key 数据的key值
    带有返回值 key对应的value值
console.log(m.get("c"))
  • .has(key)
    是否包含某一项
    参数:key 数据的key值
    带有返回值 boolean类型 true || false
console.log(m.has("a"))
  • .set(key,val)
    参数:key 数据的key值
    val 数据的val值
    带有返回值map对象本身
console.log(m.set("d",2333))

Set对象
本质是一个函数

允许你存储任何类型的唯一值,无论是原始值或者是对象引用
Set( ) 可以接受 指定目标 来作为参数
和直接使用的区别: 达成去重的目的

 let arr = [1,2,2,3,3,4,4,5];
    let s = new Set(arr);
    console.log(s);

作用:
用来构建某一个类型对象
通常我们把这类型的函数,叫做 构造函数

方法

  • size 属性
console.log(s.size);
  • clear() 方法 : 清除所有数据
    -无参 无返回值
s.clear()
	console.log(s);
  • delete(): 删除指定的数据
    参数: 指定的内容
    返回值: true || false 是否删除成功(没有这个值的话,才会出现不成功)
console.log(s.delete(3));
  • has(): 查找是否具有该元素
    参数: 指定的内容
    返回值: true || false 是否具有
console.log(s.has(3));
  • add(): 添加数据
    参数: 添加的内容
    返回值: 添加后的整体内容
console.log(s.add("a").add("b"));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值