曂沅仴駦 发表于 2022-8-9 14:43:56

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()
    console.log(arr);// {1, 2, 3, 4}
    let str=new Set('asdfg')
    console.log(str);// {'a', 's', 'd', 'f', 'g'}


   let arr1=
   let arr2=new Set(arr1)
   console.log(arr2);//{4,5,6,8,7} 因为Set是存储任何类型的唯一值,所有可以直接数组去重
let arr1 =
    let arr2 = [...new Set(arr1)]
    console.log(arr2);// 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

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: JS中的Set与Map