网站首页 服务项目 客户案例 我们优势 主机域名 关于黑羽 联系黑羽

资讯中心
了解网站建设资讯引领网站建设开发方向
盘点JavaScript中的Iterable object(可迭代对象)

大家好,我是进阶学习者。
可迭代(Iterable) 对象是数组的泛化。这个概念是说任何对象都可以被定制为可在 for..of 循环中使用的对象。
数组是可迭代的。但不仅仅是数组,很多其他内建对象也都是可迭代的。
数组和字符串是使用最广泛的内建可迭代对象。
对于一个字符串,for..of 遍历它的每个字符:

对于代理对(surrogate pairs),它也能正常工作!
(译注:这里的代理对也就指的是 UTF-16 的扩展字符)

将会采用与 for..of 完全相同的方式遍历字符串,但使用的是直接调用。这段代码创建了一个字符串迭代器,并“手动”从中获取值。

注:
很少需要这样做,但是比 for..of 给了更多的控制权。例如,可以拆分迭代过程:迭代一部分,然后停止,做一些其他处理,然后再恢复迭代。
有一个全局方法 Array.from 可以接受一个可迭代或类数组的值,并从中获取一个“真正的”数组。然后就可以对其调用数组方法了。
例:
运行结果:

在 (*) 行的 Array.from 方法接受对象,检查它是一个可迭代对象或类数组对象,然后创建一个新数组,并将该对象的所有元素复制到这个新数组。
现在用 Array.from 将一个字符串转换为单个字符的数组:
运行结果:

注:
与 str.split 方法不同,它依赖于字符串的可迭代特性。
因此,就像 for..of 一样,可以正确地处理代理对(surrogate pair)。(译注:代理对也就是 UTF-16 扩展字符。)
技术上来说,它和下文做了同样的事:
运行结果:

但 Array.from 精简很多。
甚至可以基于 Array.from 创建代理感知(surrogate-aware)的slice 方法(译注:也就是能够处理 UTF-16 扩展字符的 slice 方法):

本文基于JavaScript基础。介绍了Iterable object(可迭代对象),应用 for..of 的对象被称为 可迭代的。通过创建一个对象,详细的讲解了字符串是可迭代的。显式调用迭代器,以及在实际中 Array.from的应用。
欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
代码很简单,希望对你学习有帮助。
网页制作的服务
网站开发服务
自贡黑羽网络品牌建站
自贡本地做网站就选黑羽网络
Tel:0813-5104030 15348110304 QQ或微信:22232591
地址:四川省自贡市自流井区丹佳大街泰丰大厦写字楼19楼10号
Copyright © 2018-2058 自贡黑羽网络科技有限公司 All rights reserved. ICP备案号 : 蜀ICP备12014994号-1 技术支持:黑羽网络
自贡网站建设,网页设计制作与开发,自贡网络公司推荐品牌,关键词: 自贡网站制作 自贡做网站 自贡网络公司 自贡网页制作 自贡做网站 网站地图xml 网站地图html 网站地图txt