js中的Map

js中的Map

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

创建

1.无参数

创建一个空的Map集合

var mp=new Map();

2.数组参数

要求传入一个二维数组(每个元素是大小为2的数组)作为参数,每个元素的第一个元素为key,第二个元素为value

let arr=[[1,2],[3,4]];  //arr[0][0],arr[1][0]为key,  arr[0][1],arr[1][1]为value,  
var mp=new Map(arr);  

遍历

forEach(function(v[,k]))

以插入的先后顺序遍历每个键值对的value

let arr=[[1,2],[3,4]];
var mp=new Map(arr);
mp.forEach(function(v){
    console.log(v);
})
/*
2
4
*/

以插入的先后顺序遍历每个键值对的(key,value)

let arr=[[1,2],[3,4]];
var mp=new Map(arr);
mp.forEach(function(v,k){  
   console.log(k,v);
})
/*
1 2
3 4
*/

特别注意:forEach(function(v[,k]))的第一个参数为value,第二个参数为key

插入/修改

set(k,v)

  1. map中不存在key时,添加一个{k,v}的键值对
var mp=new Map();
mp.set(3,6);
mp.set(4,7);
mp.forEach(function(v,k){
   console.log(k,v);
})
/*
3 6
4 7
*/
  1. map中存在key时,修改key为k的value值
var mp=new Map();
mp.set(3,6);
mp.set(4,7);
mp.set(4,8);
mp.forEach(function(v,k){
   console.log(k,v);
})
/*
3 6
4 8
*/

删除

delete(k)

存在key为k的键值对,删除并返回teue,不存在返回false。

var mp=new Map();
mp.set(3,6);
mp.set(4,7);
mp.delete(4);
mp.forEach(function(v,k){
   console.log(k,v);
})
/*
3 6
*/

判断

has(k)

返回一个bool值,判断map中是否存在key为k的键值对

var mp=new Map();
mp.set(3,6);
mp.set(4,7);
console.log(mp.has(6));
console.log(mp.has(4));
/*
false
true
*/

取值

get(k)

获取key为k的value值,如果不存在key为k的键值对,返回undefined

var mp=new Map();
mp.set(3,6);
mp.set(4,7);
console.log(mp.get(3));
console.log(mp.get(7));
/*
6
undefined
*/

size()

获取键值对的个数

var myMap = new Map();
myMap.set('a', 'alpha');
myMap.set('b', 'beta');
myMap.set('g', 'gamma');

myMap.size // 3

clear()

清空map集合所有键值对

keys()

返回一个新的 Iterator对象。它包含按照顺序插入Map对象中每个元素的key值。

var myMap = new Map();
myMap.set('0', 'foo');
myMap.set(1, 'bar');
myMap.set({}, 'baz');

var mapIter = myMap.keys();

console.log(mapIter.next().value); // "0"
console.log(mapIter.next().value); // 1
console.log(mapIter.next().value); // Object

values()

方法返回一个新的Iterator对象。它包含按顺序插入Map对象中每个元素的value值。

var myMap = new Map();
myMap.set('0', 'foo');
myMap.set(1, 'bar');
myMap.set({}, 'baz');

var mapIter = myMap.values();

console.log(mapIter.next().value); // "foo"
console.log(mapIter.next().value); // "bar"
console.log(mapIter.next().value); // "baz"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值