迭代器、Set、Map、数值拓展

 1.迭代器是这样的一种机制。

它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署了Iterator接口,就可以完成遍历操作(即依次处理该数据结构的成员)

Iterator的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按照某种次序排列;三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。

for...of的底层实现原理其实就是可以看作一个指针对象,第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员,不断地调用指针对象的next方法,直到它指向数据结构的结束位置。

原生具备 Iterator 接口的数据结构如下 Array、Map、Set、String、TypedArray、arguments、NodeList。

2.Set

Set类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。Set 构造函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

添加元素:add,删除元素:delete,判断有没有某个成员:has,清空set:clear,返回set的成员个数:size

3.Map集合

Map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

创建一个Map集合,通过构造函数let res =Object.entries(obj); let map=new Map(res)

给map添加成员的方法是set,删除map成员是delete,delete可以直接删除基本数据类型的键,而删除引用数据类型需要删除引用地址。获取map的属性值:get方法。

遍历方法:可通过for...of map.keys()进行遍历,获得的是属性值,也可以通过forEach进行遍历:forEach(value,key,map)=>{},与普通的forEach的value和key的值相反。

map和object有什么区别?

1.map的键可以是任意数据类型,object的键只能是字符串或者symbol。

2.map是一个可迭代的数据结构,对象不可以直接迭代。

3.map可以通过size属性获取数据结构的长度,而对象不能直接获取

4.map循环遍历按照顺序进行输出,对象属性是无序数据结构。

4.数值拓展

Number.isFinite()对于非数值一律返回false

Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。

parseInt、parseFloat在ES5中是进行强制数据类型转换,在ES6新方法中,将其移植到Number对象上面,行为完全保持不变

Number.parseInt()

Number.parseFloat()

Number.isInteger()用来判断一个数值是否为整数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值