let map=new Map()
let map=new Map([key,value],[key,value])
属性和方法
size
set
get
has
delete
clear
遍历方法
keys()
values()
entries()
forEach()
let map=new Map()
let arr=new Array()
let set=new Set()
let obj=new Object()
let item={'test':test}
//增
map.set('test','test')
arr.push(item)
set.add(item)
obj['test']='test'
//删
map.delete('test')
arr.splice(arr.findIndex(item=>item.test),1)
set.delete(item)
delete obj['test']
//改
map.set('test','test2')
arr.forEach(item=>item.test?item.test='test2':'')
item.test = 'test2'
obj['test'] = 'test2'
//查
map.has('test')
arr.find(item=>item.test)
set.has(item)
'test' in obj
map.size
map.clear()
var mapValues = map.values()
var mapKeys = map.keys()
var mapEntries=map.entries()
console.log(mapValues .next().value)
console.log(mapValues .next().value)
console.log(mapValues .next().value)
for (var [key, value] of map) {
console.log(key + " = " + value);
}
map.forEach(function(value, key) {
console.log(key + " : " + value);
})
Map Vs Object
1、Object对象的键只能是字符串或者 Symbols类型,但Map对象的键可以是任意值。
2、Map 中的键值是有序的(FIFO 原则),而添加到Object中的键则不是。
3、Map 的键值对个数可以根据 size 属性获取,而 Object 的键值对个数只能手动计算。
4、Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。
网友评论