ES6 Set 和 Map 集合 知识汇总

目录

一、Set 集合

1.什么是Set

2.Set集合的API( 实例方法 )

①Set.prototype.size        返回Set实例的成员总数。

②Set.prototype.add(value)    添加某个值,返回Set结构本身

③Set.prototype.delete(value)    删除某个值,返回一个布尔值,表示删除是否成功。

④Set.prototype.has(value)    返回一个布尔值,表示该值是否为Set的成员。

⑤Set.prototype.clear()    清除所有成员,没有返回值。

⑥Set.prototype.keys()    返回键名的遍历器

Set.prototype.values()    返回键值的遍历器

Set.prototype.entries()    返回键值对的遍历器

⑦Set.prototype.forEach()    使用回调函数遍历每个成员

二、Map集合

1.什么是Map

2.Map的API(实例方法)

1. Map.prototype.size  返回 Map 结构的成员总数。

2. Map.prototype.set(key, value) 

3. Map.prototype.get(key)  get方法读取key对应的键值,如果找不到key,返回undefined。

4. Map.prototype.has(key)  has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。

5. Map.prototype.delete(key)   删除某个键,返回true。如果删除失败,返回false。

6. Map.prototype.clear() 清除所有成员,没有返回值

7.Map.prototype.keys() 返回键名的遍历器

Map.prototype.values() 返回键值的遍历器

Map.prototype.entries()  返回键值对的遍历器

8.Map.prototype.forEach()  使用回调函数遍历每个成员


一、Set 集合

1.什么是Set

        Set类似于数组,但是成员的值都是唯一的,没有重复的值。

        Set 本身是一个构造函数,用来生成 Set 数据结构展。

        Set 构造函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

2.Set集合的API( 实例方法 )

        创建一个Set实例,来举例子

let arr = [1,2,3,4,4,5,3,2,1,7]

let set = new Set(arr)        //去重后 返回一个对象

console.log(set);         //Set(6) { 1, 2, 3, 4, 5, 7 }

①Set.prototype.size        返回Set实例的成员总数。

console.log(set.size);        //        6

②Set.prototype.add(value)    添加某个值,返回Set结构本身

console.log(set.add(100));        //Set(7) { 1, 2, 3, 4, 5, 7, 100 }

③Set.prototype.delete(value)    删除某个值,返回一个布尔值,表示删除是否成功。

console.log(set.delete(1));  //true

④Set.prototype.has(value)    返回一个布尔值,表示该值是否为Set的成员。

console.log(set.has(1));      //false      在上一步中删除了 1 这个值

⑤Set.prototype.clear()    清除所有成员,没有返回值。

set.clear()      //没有返回值,直接调用           

⑥Set.prototype.keys()    返回键名的遍历器

Set.prototype.values()    返回键值的遍历器

Set.prototype.entries()    返回键值对的遍历器

  注意: Set成员是唯一的,key-value是一样的

执行这里之前先把上面.clear()注释掉

console.log(set.keys);        //[Function: values]

console.log(set.values);        //[Function: values]

console.log(set.entries);        //[Function: entries]
 

⑦Set.prototype.forEach()    使用回调函数遍历每个成员

set.forEach((item) => {

  console.log(item);

})

        //2 3 4 5 7 100

二、Map集合

1.什么是Map

        Map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

var map = new Map([ ['name', '张三'], ['title', 'Author'] ]);

2.Map的API(实例方法)

创建一个Map实例

let obj1 = {

  name: 'zhangsan',

  age: 12,

  gender: 'male'

}

let obj = Object.entries(obj1)        //将obj1转化为一个键值对数组

let map = new Map(obj);        //Map(3) { 'name' => 'zhangsan', 'age' => 12, 'gender' => 'male' }

1. Map.prototype.size  返回 Map 结构的成员总数。

console.log(map.size);      //3

2. Map.prototype.set(key, value) 

        set方法设置键名key对应的键值为value,然后返回整个map结构。如果key已经有值,则键值会被更新,否则就新生成该键。

//添加

map.set({a: 1,b: 2},['tom','terry']);

//        Map(4) {
          'name' => 'zhangsan',
          'age' => 12,
          'gender' => 'male',
          { a: 1, b: 2 } => [ 'tom', 'terry' ]
        }

//更新

map.set('name','lisi')

console.log(map);

//        Map(4) {
          'name' => 'lisi',
          'age' => 12,
          'gender' => 'male',
          { a: 1, b: 2 } => [ 'tom', 'terry' ]
        }

3. Map.prototype.get(key)  get方法读取key对应的键值,如果找不到key,返回undefined。

console.log(map.get('age'));        // 12

4. Map.prototype.has(key)  has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。

console.log(map.has('gender'));        //true

5. Map.prototype.delete(key)   删除某个键,返回true。如果删除失败,返回false。

console.log(map.delete('age'));        //true

6. Map.prototype.clear() 清除所有成员,没有返回值

map.clear()     //执行下面的记得注释掉

7.Map.prototype.keys() 返回键名的遍历器

Map.prototype.values() 返回键值的遍历器

Map.prototype.entries()  返回键值对的遍历器

console.log(map.keys());        //[Map Iterator] { 'name', 'gender', { a: 1, b: 2 } }

console.log(map.values());        //[Map Iterator] { 'lisi', 'male', [ 'tom', 'terry' ] }

console.log(map.entries());
//        [Map Entries] {
          [ 'name', 'lisi' ],
          [ 'gender', 'male' ],
          [ { a: 1, b: 2 }, [ 'tom', 'terry' ] ]
        }

8.Map.prototype.forEach()  使用回调函数遍历每个成员

map.forEach((value, key) => {

  console.log(value,key);

})

//      lisi name
        male gender
        [ 'tom', 'terry' ] { a: 1, b: 2 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值