js中Set和Map的实例方法

2019-08-16

Set集合

类似于数组,但是成员的值都是唯一的, Set本身是一个构造函数 用来生成Set数据结构 Set结构的实例方法

添加值,返回Set结构本身

const set = new Set()
set.add(1)
set.add(1)
set.add(2)
console.log(set) //Set { 1, 2 }

删除值,返回布尔值表示是否删除成功

let set = new Set()
set.add(1)
set.delete(1) //true
console.log(set) //Set {}

返回布尔值,判断Set对象中是否含有某值

let set = new Set()
set.add('hello')
set.add('world')
set.has('hello') //true
set.has(1) //false

移除所有元素,没有返回值

返回一个Iterator对象,对象按照原Set对象元素 的插入顺序返回其所有元素

let set = new Set()
set.add('hello')
set.add('world')

const keys = set.keys()
console.log(keys) //{ 'hello', 'world' }
console.log(keys.next().value) //hello
console.log(keys.next().value) //world

keys()用法一样,返回Iterator对象,返回值也与keys()一样

返回一个键值对形式的迭代器,类似[value, value]形式的数组 value是集合中的每个元素

let set = new Set()
set.add('hello')
set.add('world')

const entries = set.entries()
console.log(entries.next().value) //[ 'hello', 'hello' ]
console.log(entries.next().value) //[ 'world', 'world' ]

`Map集合

类似于对象,是键值对的集合,数据可为任意类型,与Object的区别在于 Object的键只能是字符串或者Symbols,但Map可以为任意类型,且Map中的键值是有序的 Map结构的实例方法

设置键值对,返回整个Map()结构,若对应键已有值则覆盖原有的值

let map = new Map()
map.set('name', 'lil')
console.log(map) //{ 'name' => 'lil' }

获取key对应的键值,若没有则返回undefined

let map = new Map()
map.set('name','lil')
console.log(map.get('name')) //lil

返回布尔值,查询key是否在当前对象中

let map = new Map()
map.set('name','lil')
console.log(map.has('name')) //true
console.log(map.has('age')) //false

删除key对应的键值对,删除成功返回true否则返回false

let map = new Map()
map.set('name','lil')
console.log(map.delete('name')) //true
console.log(map) //{}

清除所有键值对,没有返回值

返回新的Iterator对象,按顺序插入Map对象中所有key

let map = new Map()
map.set('name','lil')
map.set('age','21')
map.set('gender','male')

console.log(map.keys()) //{ 'name', 'age', 'gender' }

返回新的Iterator对象,按顺序插入Map对象中所有value

let map = new Map()
map.set('name','lil')
map.set('age','21')
map.set('gender','male')

console.log(map.keys()) //{ 'lil', '21', 'male' }

返回新的Iterator对象,按顺序插入Map对象中每个元素的 [key,value]数组

let map = new Map()
map.set('name','lil')
map.set('age','21')
map.set('gender','male')

console.log(map.entries())
//{ [ 'name','lil' ],[ 'age','21' ],[ 'gender','male' ] }
  • forEach(callback,thisArg)

callback(key,value,Map)必选,对象中每个元素都要执行的回调函数

key-当前元素的键
value-当前元素的值
Map-当前正在遍历的对象

thisArg可选,回调函数执行时的this的值 forEach()返回值为undefined

let map = new Map()
map.set('name','lil')
map.set('age','21')
map.set('gender','male')

map.forEach((value, key)=> {
    console.log(key+' = '+value)
})
//name = lil
//age = 21
//gender = male
原文链接:segmentfault.com

上一篇:web xss攻击常用解决方案
下一篇:如何学习-什么是学习?
相关教程
关注微信

扫码加入 JavaScript 社区

相关文章

首次访问,需要验证
微信扫码,关注即可
(仅需验证一次)

欢迎加入 JavaScript 社区

号内回复关键字:

回到顶部