继续分享es6
Set数据类型
set数据类型的值是惟一的,不会出现重复的,自带去重功能,他的键值对相同
var a = new set([1,25,6,8,1,6,9,45,28,1])
合并两个数组,并去重: var arr = [1,2,3,4,5]
var arr2 = [1,2,3,4,5,6,789]
var a = new Set([...arr,...arr2])
把set数据类型转换成数组
方法1: var b = Array.from(a)
方法2: var b = [...a]
遍历set数据 var a = new Set([1,2,3,'张三','老王'])
方法1:使用 for of
for(var i of a){console.log(i)}
方法2:使用 forEach
a.forEach(a =>console.log(a))
set数据类型里面提供的方法:var a = new set([1,2,3,'斩杀','老王'])
a.add('xx') // add添加数据
a.delete('老王') // 删除指定的数据,根据值去删
var b = a.has('afas') // has查询数据,返回布尔值
a.clear() // 删除所有的数据 clear
var b = a.size // set里面的数据 获取长度
Symbol数据类型
symbol数据类型不要new,新出的数据类型 他有唯一性,一般当做属性名或常量去用
var a = Symbol(‘name’)
var obj = {a:‘张三’}
obj[a] = ‘王五11’ // 通过[]这个形式去向对象里面存
读取symbol数据
返回值 使用一个数组 ->这个数组是由 对象里面通过symbol命名的那些属性名,组合的数组
var xx = Object.getOwnpropertySymbols(obj)
需要用[]去取值 console.log(obj[xx[0]])
根据变量去取值 console.log(obj[a])
map数据类型
var a = new Map()
使用set()存储数据 参数1 key 参数2 value
a.set('name','张三')
使用get()获取数据 参数1 key
a.get('name')
has 查询是否包含指定的索引 返回布尔类型,参数1 key
a.has('age')
delete 根据key删除指定的数据,删除成功返回true 删除失败返回false
a.delete('name')
clear 清除所有数据
a.clear()
size 属性
a.size
遍历map数据
方法1: for(var i of a){console.log(i)} // 数组 -> 键,值
方法2:forEach()
filter
filter过滤 只会把符合条件的返回出去
参数 callback回调函数 ->回调函数里面写表达式 ->会把符合条件的返回出去放到一个数组中
var b = arr.filter(a => a >1)
some
some 判断数组里面使用有满足条件的数据,只要有一条就会返回true,否则返回false
var b = arr.some(a => a >3)
every
every要求数组中每条数据都要满足条件才会返回true,否则返回false
var b = arr.every(a => a >= 2)