首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[].forEach.call(.)的替代方案在ECMA6Script中

[].forEach.call(.)的替代方案在ECMA6Script中
EN

Stack Overflow用户
提问于 2015-05-20 07:12:57
回答 3查看 1.1K关注 0票数 1

我在所有应用程序中使用以下代码通过DOM元素进行枚举:

代码语言:javascript
复制
var elements = document.querySelectorAll('div');
[].forEach.call(elements, function(element) {
    div.style.color = 'green';
});

这段代码可以工作,但是[].forEach.call(...)在大型应用程序中不容易读取。在不使用自定义函数或原型的情况下,是否有一种在ECMA6Script中更容易实现DOM枚举的本地方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-20 07:46:50

您将不再在forEach中使用ES6。你会用循环播放

代码语言:javascript
复制
for (let div of document.querySelectorAll('div'))
    div.style.color = 'green';

除此之外,您还可以使用Array.from将可迭代对象转换为数组,然后对其调用.forEach;但实际上,对于即将发布的DOM规范,这是不必要的,因为querySelectorAll将返回以ES6方式从Array继承的Elements集合--因此可以直接在其上调用.forEach方法!

票数 6
EN

Stack Overflow用户

发布于 2015-05-20 07:14:32

您可以使用Array.from

代码语言:javascript
复制
Array.from(elements).forEach(elem => ...)
票数 2
EN

Stack Overflow用户

发布于 2015-05-20 14:55:55

在ES6中,您可以使用扩展算子

代码语言:javascript
复制
[...document.querySelectorAll('div')].forEach(e => console.log(e))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30342742

复制
相关文章

相似问题

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