JS中的Set与Map

Set   Map  后面跟的都必须是可迭代的对象

Set

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

add( )  has( )  size   delete( )

 let myset = new Set()
    //添加
    console.log(myset.add(1));//{1}
    console.log(myset.add(6));// {1, 6}
    let p = { a: 1, b: 2 }
    console.log(myset.add(p));// { 1, 6, { a: 1, b: 2  } }
    //查找
    console.log(myset.has(1));//true
    console.log(myset.has(5));//false
    //长度
    console.log(myset.size);//3
    //删除
    myset.delete(1)
    console.log(myset); //{ 6, { a: 1, b: 2 } }

 new Set(可迭代的对象)

let arr = new Set([1,2,3,4])
    console.log(arr);// {1, 2, 3, 4}
    let str=new Set('asdfg')
    console.log(str);// {'a', 's', 'd', 'f', 'g'}


   let arr1=[4,5,6,8,7]
     let arr2=new Set(arr1)
     console.log(arr2);//{4,5,6,8,7}

 因为Set是存储任何类型的唯一值,所有可以直接数组去重

let arr1 = [4, 5, 4, 8, 7]
    let arr2 = [...new Set(arr1)]
    console.log(arr2);//[4,5,8,7]

 Map

Map与Object类似

Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或一个值。

存储数据到 Map 中的方式是使用 set(key, value) 方法。

使用 Map 类型和 new 关键字来创建 Map:

不仅仅是数组,任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构 所以 Set Map 数组 都可以创建 Map

创建空map 再添加

let map1 = new Map();
map1.set('123',123)

数组创建Map

const m2 = new Map([['baz', 3]]);

set 创建Map

const set = new Set([
  ['foo', 1],
  ['bar', 2]
]);

const m3 = new Map(set);
 console.log(m3);//{'foo' => 1, 'bar' => 2}

map 创建新的map

注意 m3 === m2 //false

const m3 = new Map(m2);

Map 增 删 查 清空

.set( )  .delete( )  .has( )   .clear( )

 const map = new Map();
  map.set('foo', true);
  map.set('bar', false);

 console.log(map.size);//2
  console.log(map);//{'foo' => true, 'bar' => false}

  map.set(1,22)
  console.log(map)//{'foo' => true, 'bar' => false, 1 => 22}
  map.set(1, 33)
  console.log(map)//{'foo' => true, 'bar' => false, 1 => 33}
 console.log(map.get(1));//33
 console.log(map.get(5));//undefined
 console.log(map.has(1));//true
 console.log(map.has(2));//false


 

posted @   长安·念  阅读(199)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示