首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"for...of“循环迭代是否遵循JavaScript中的数组顺序?

"for...of“循环迭代是否遵循JavaScript中的数组顺序?
EN

Stack Overflow用户
提问于 2015-04-06 19:13:16
回答 2查看 19.1K关注 0票数 43

使用for...in迭代数组并不能保证顺序,但是ES6引入了一个新的构造for...of

我对for...of实现的有限测试表明,它确实按照数组上的顺序迭代,但是这个属性有保证吗?

EN

回答 2

Stack Overflow用户

发布于 2015-04-06 20:43:03

我对for...of实现的有限测试表明,它在数组上是按顺序迭代的,但是这个属性有保证吗?

是。但是找到它有点复杂,因为for of不只是迭代数组(就像for in枚举对象一样)。相反,它一般地迭代所有可迭代对象--按照它们各自迭代器提供的顺序。

实际上,数组是可迭代的,当从它们获得迭代器时,它将是一个迭代器,它以数组中可以找到的所有元素的顺序产生数组的所有元素。您可以读取对象,它们基本上像for (var index=0; index<array.length; index++) yield array[index];循环一样工作。

票数 5
EN

Stack Overflow用户

发布于 2015-04-07 10:25:20

按照ES6关于for..of的规范

代码语言:javascript
运行
复制
for ( LeftHandSideExpression of AssignmentExpression ) Statement

如果LeftHandSideExpression要么是ObjectLiteral,要么是ArrayLiteral,如果LeftHandSideExpression匹配的词法令牌序列可以被解析,而没有使用AssignmentPattern作为目标符号的标记,那么将不应用以下规则。相反,使用了AssignmentPattern的早期错误规则。

根据此语法规则定义,当for..of循环是、数组、对象文字时,将按照令牌的词法顺序执行该循环。

这是David Walsh http://davidwalsh.name/es6-generators提供的一个很好的博客链接,他用例子解释了for..of循环如何使用迭代器工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29477973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档