"Code tailor",为前端开发者提供技术相关资讯以及系列基础文章,微信关注“小和山的菜鸟们”公众号,及时获取最新文章。
在开始学习以前,咱们想要告诉您的是,本文章是对阮一峰《ECMAScript6 入门》一书中 "Set 和 Map" 章节的总结,若是您已掌握下面知识事项,则可跳过此环节直接进入题目练习javascript
若是您对某些部分有些遗忘,👇🏻 已经为您准备好了!前端
set 和 map 的学习java
Set
对象是值的集合,你能够按照插入的顺序迭代它的元素。Set
中的元素只会出现一次,即Set
中的元素是惟一的。es6
Map
对象保存键值对,而且可以记住键的原始插入顺序。任何值(对象或者原始值) 均可以做为一个键或一个值。数组
Set微信
建立一个新的
Set
对象。
let mySet = new Set()
返回
Set
对象中的值的个数
let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.size // 2
在Set
对象尾部添加一个元素。返回该Set
对象
let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ]
移除
Set
对象内的全部元素。
let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.clear() mySet.size // 0
移除Set
中与这个值相等的元素,返回Set.prototype.has(value)
在这个操做前会返回的值(即若是该元素存在,返回true
,不然返回false
)。Set.prototype.has(value)
在此后会返回false
。
let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.delete(5) // true, 从set中移除5 mySet.size // 1
返回一个布尔值,表示该值在
Set
中存在与否。
let mySet = new Set() mySet.add(1) // Set [ 1 ] mySet.add(5) // Set [ 1, 5 ] mySet.has(1) // true mySet.has(3) // false mySet.delete(5) // true, 从set中移除5 mySet.has(5) // false, 5已经被移除 mySet.size // 1, 刚刚移除一个值
Map()学习
用于建立
Map
对象
let myMap = new Map()
返回
Map
对象的键/值对的数量。
let myMap = new Map() let keyString = 'a string' myMap.set(keyString, "和键'a string'关联的值") myMap.size //1
移除
Map
对象的全部键/值对 。
myMap.clear()
若是Map
对象中存在该元素,则移除它并返回true
;不然若是该元素不存在则返回false
。随后调用Map.prototype.has(key)
将返回false
let keyString = 'a string' myMap.set(keyString, "和键'a string'关联的值") myMap.delete('a string') //true myMap.delete('xhs') //false(由于没有set)
返回键对应的值,若是不存在,则返回
undefined
。
myMap.get(keyString) // "和键'a string'关联的值"
返回一个布尔值,表示
Map
实例是否包含键对应的值。
myMap.has('a string') // true
设置Map
对象中键的值。返回该Map
对象。
myMap.set(keyString, "和键'a string'关联的值")
let myMap = new Map() let keyString = 'a string' myMap.set(keyString, "和键'a string'关联的值") myMap.size //1 myMap.get(keyString) // "和键'a string'关联的值" myMap.has('a string') // true myMap.delete('a string') //true myMap.clear()
一:Map 和 Set 的区别prototype
二:求数组的并集与交集code
1、对象
Answer:
Set 对象是值的集合,Map 对象是键值对的集合 Set 对象的元素只会出现一次,即 Set 中的元素是惟一的。Map 对象因为若是有重复的键值,则后面的会覆盖前面的,相对来讲键也是惟一的
2、
Answer:
const array1 = [1, 3, 5, 7, 9] const array2 = [2, 3, 4, 5, 6] const s1 = new Set([...array1, ...array2]) //并集 let Union = [...s1] console.log(Union) // [1, 3, 5, 7, 9, 2, 4, 6] const s2 = new Set(array1) //交集 const Intersection = array2.filter((item) => s2.has(item)) console.log(Intersection) // [3, 5]