es6生成器与keys、values、entries遍历方法

news/2024/7/11 1:16:30 标签: javascript, es6

作用

可以在一个函数中定义多个返回值,通过next()依次获取返回值。

javascript">//定义生成器时,与普通函数的区别就是function后面的*
function* generation() {
            yield "第一次调用";
            yield "第二次调用";
            return "最后一次调用";
        }
        let test = generation();
        console.log(test.next().value);
        console.log(test.next().value);
        console.log(test.next().value);

遍历生成器的返回值

可以通过for of来遍历生成器的所有返回值,但注意:return的值无法获取到

javascript">for (const item of test) {
            console.log(item);
        }

在这里插入图片描述
解决方法1:
如果想获取到所有返回值,可以用循环来遍历
解决方法2:
将return改成yield

使用

set的遍历
es6新提出的Map和Set是没有对应的遍历方法的,我们可以通过生成器给其封装一个遍历方法。或者使用官方已经封装好的遍历方法keys、values、entries(这三种方法也可以通过生成器来制作)但只能通过forof或者自己写循环遍历,forof是es6提出的。

javascript">		let list = [1, 2, 3, 1, 2, 3];
        let listSet = new Set(list)for (const item of listSet.keys()) {
            console.log(item);
        } 

在这里插入图片描述
map的遍历
注意:new一个map对象初始化时,参数只能是二维数组

javascript">		let list = [[12,34],['a','b'],[true,'c']];
        let listMap = new Map(list);
        console.log(listMap);
        for (const item of listMap.entries()) {
            console.log(item);
        } 

在这里插入图片描述
这三种方法不止set和map可以用,其他的集合和数组也可以使用。


http://www.niftyadmin.cn/n/1570117.html

相关文章

python实现网络通信_在python和C之间进行通信

我想创建一个 python模块,它可以从C类调用它的函数,并从该类调用c函数 我看过提升,但似乎没有任何意义 它指的是一个共享库(我不知道如何创建),我不能放弃他们在示例中使用的代码(这看起来很混乱) 遵循C/C传统,让我们从“你好,世界”开始吧.一个C函数: char const* …

操作cookie(增、删、改、查)以及其常用属性

Cookie需要依赖服务器环境,所以应先搭建服务器环境。 1. 创建cookie的语法: a. cookie 的存取都依赖于 document.cookie b. cookie是以键值对(keyvalue)形式存在的字符串 c. cookie 存储的时候是一条一条的的存的 (每条数据之前用"; " 分隔)…

使用python画图表_Python使用plotly绘制数据图表的方法

导语:使用 python-plotly 模块来进行压测数据的绘制,并且生成静态 html 页面结果展示。 不少小伙伴在开发过程中都有对模块进行压测的经历,压测结束后大家往往喜欢使用Excel处理压测数据并绘制数据可视化视图,但这样不能很方便的使…

ajax、php实现前后端交互的主要代码

ajax向php(接口)发送请求 post请求 let xhr new XMLHttpRequest(); xhr.open("post", "../php/register.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.se…

python提现_python自学篇(第二章:控制流)

控制流变成实际上是一个过程的提现,每个过程都是有多个流程块组成。比如:判断是否下雨的过程1.布尔值在第一章最后举例了比较操作后,最终返回的结果 True or FalseTrue 和 False是一组布尔值,并且注意的是首字母大写布尔值可以和其…

promise解决回调函数噩梦以及封装异步操作

存在由来 回调函数噩梦(恐怖回调),也被称为恶魔金字塔,指如ajax依赖调用时,回调函数会层层嵌套,而这种层层嵌套的写法,往往会让人难以理解,所以称之为噩梦。 例如:服务器中有3个txt文件&#…

outputstream 写入文件_浅谈URI中的任意文件下载

原文来自SecIN社区—作者:tkswifty引言文件下载是比较常见的业务。常见的接口格式为/download?fileNamexxx.png,整个过程若没过滤目录穿越符号…/或者未对下载的路径进行处理限制。当传入的filename参数为../../etc/passwd即可穿越路径达到任意文件下载的效果。 有…

大模型加速学科升级,飞桨赋能北邮“X+大模型”特色小学期

在人工智能时代,设计师与产品经理比以往更加需要关注一个事实:那就是如何利用人工智能和数据分析技术,打造让用户心动的信息交互产品和用户体验,释放人-机协同共创的巨大潜能,是决定设计产能和竞争力的关键。 在产业的…