Set与Map,它们你都了解吗?

概论

提起JS中的数据类型,相信大家很容易就能联想到Number、String、Boolean、Object等等;没错,以上都属于JS中的两大数据类型。除此之外,JS中还有很多的内置对象。像大家耳熟能详的Array、Math、Function等,也有很多我们不怎么常用的,比如Set、Map、WeakSet、WeakMap。这些对象虽不常用,但也并非毫无用处,一起来看!

Set

Set其实与Aaary极为相似,也是一种有序的引用对象。其与Array的最大区别在于Set内的值不可重复,而Array则无此限制


const myArray = [1,1,2,2]

const mySet = new Set(myArray)
console.log(mySet2) //输出 Set(2) {1,2}

常用API

//获取Set长度
mySet.size()
//向Set中增加值
mySet.add(3)
//从Set中删除值
mySet.delete(3)
//遍历Set
for (let item of mySet){
 console.log(item)
}

使用技巧

既然Set有内部值唯一的特性,name用来去重再也合适不过了

//数组去重
let myArray = [1,1,2,2]

myArray = Array.from(new Set(myArray))
console.log(myArray) //输出 [1,2]

//字符串去重
let myStr = 'oovbyyu'

myStr = Array.from(new Set(myStr)).join('')
console.log(myStr) //输出"ovbyu"



Map

Map与Object很像,他们都是键值对。主要的区别在于: 1. Map内部的值是有序的(与插入时的顺序一致); 2. Map的键类型不受限制,可以是任意类型(包括函数,对象等等)。


let myMap = new Map();
let arrayA = [1,2]

myMap.set(arrayA,2)

console.log(myMap) //输出 Map(1) {Array(2) => 2}

常用API


//获取Map长度
myMap.size
//向Map中增加值
myMap.set('mapKey','mapVal')
//从Map中删除值
myMap.delete('mapKey')//成功则返回true,失败则返回false
//获取Map中某键的值
myMap.get(arrayA)
//遍历Map
for (let item of myMap){
 console.log(item)
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值