JS(ES6)中的map、set详解

158 阅读1分钟

什么是Map

Map类型是一种存储着许多键值对的有序列表。

存储数据都是 键值对的形式 例:键名 : 数值 <-----> key : value

创建map

map的参数是一个二维数组:二维数组里有两个参数,第一个是键名,第二个是数值。例:

const map = new Map([ [键名1,数据1] , [键名2,数据2] ]);   //语法格式
const map = new Map([ ['name','张三'] , ['age',18] ]);   //案例展示

map常用的方法

map.set('键名','数值')(给map添加二维数组)

map.set('name','张三');

map.has('键名') 判断map是否有该键名

const m = new Map([ ['name','张三'] , ['age',18] ]); 
console.log(m.has('a'));//false
console.log(m.has('name'));//true

map.get('键名')获取键名里对应的数值

const map = new Map([ ['name','张三'] , ['age',18] ]); 
console.log(map.get('name')); //张三

map.delete('键名') 删除指定键名

const map = new Map([ ['name','张三'] , ['age',18] ]); 
map.delete('name');
console.log(map); //Map(1) {"age" => 18}

map.clear()清除map中所有数据

map.forEach(fn) 跟数组一样的遍历语法

map.size 获取map中元素的个数

Set

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

创建set

let s = new Set();

Set的api

set.size()

获取set的长度

let s1 = new Set([1,2,2,3,3,2,1]);
console.log(s1.size);//3

set.has(值)

查看set里有没有对应的值

let s2 = new Set([1,2,3]);
console.log(s2.has(1));//true
console.log(s2.has(4));//false

set.add(值)

往set里添加值

set.delete(值)

删除set里的值

set.clear()

清除set的所有值