Array.prototype.each = function(callback){for(var i = 0; i <this.length; i ++)callback(this [i]); } - 这个可以吗?

Tad*_*spy 3 javascript arrays iteration prototype node.js

我知道这是一个品味的问题,但是每次我想迭代数组时使用for循环的味道都很糟糕.所以我想出了这个:

Array.prototype.each = function(callback) {
  for (var i = 0; i < this.length; i++)
    callback(this[i]);
}
Run Code Online (Sandbox Code Playgroud)

现在我能做到:

[10, 20, 30].each(function(n) { console.log(n/10) })
Run Code Online (Sandbox Code Playgroud)

后来我在互联网上发现了一些提示这种方法的技巧,但我仍然想知道它是否没有副作用.这似乎非常明显,这就是让我担心的问题:)

我没有使用像jQuery或Prototype这样的库.我正在编写Node.js.

Flo*_*ine 6

我建议你用forEach.它在大多数现代浏览器中实现,垫片由MDN提供.

在node.js上,它已实现(它使用V8,与Chrome相同的引擎),因此您不需要垫片.

它的用途如下:

arr.forEach( function( el ) {
    // play with "el"
} )
Run Code Online (Sandbox Code Playgroud)

另外,我建议你看一下ES5提供的新数组方法: