1

Set集合

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

  • add()

添加值,返回Set结构本身

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

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

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

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

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

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

  • keys()

返回一个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
  • values()

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

  • entries()

返回一个键值对形式的迭代器,类似[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结构的实例方法

  • set(key, value)

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

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

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

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

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

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

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

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

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

  • keys()

返回新的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' }
  • values()

返回新的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' }
  • entries()

返回新的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

Lil_tsj
4 声望0 粉丝

大三,积极找实习