如何遍历nodeList功能样式

met*_*ion 2 javascript prototype

我经常想使用forEach或map遍历NodeList。我的简化代码如下所示:

var nodeListMap = Array.prototype.map;
var els = document.querySelectorAll('.classname');
nodeListMap.call(els, function(el){...});
Run Code Online (Sandbox Code Playgroud)

这很好。但是,我不想不必这样做map.call,但是如果我这样做的话...

var nodeListMap = Array.prototype.map.call;
var els = document.querySelectorAll('.classname');
nodeListMap(els, function(el){...});
Run Code Online (Sandbox Code Playgroud)

然后返回

TypeError: object is not a function
Run Code Online (Sandbox Code Playgroud)

我怎样才能修改代码,让我简单地做nodeListMap(array, fn)呢?

And*_*myr 6

我遇到了同样的问题,我使用ES6的超级简单解决方案是:

const els = [...document.querySelectorAll('.classname')]
Run Code Online (Sandbox Code Playgroud)

这样,nodeList成为常规Array,您可以使用mapreduce依此类推。