0

您好,感谢您的关注!

背景

我正在用 Node.JS 构建我的第一个应用程序,并且正在用原生 JavaScript 替换基于 jQuery 的习惯。

对于大多数项目,这是微不足道的;然而,我发现我真的很怀念 jQuery$.each()抽象的优雅,我想做一些类似的事情而不依赖 jQuery。

不幸的是,JavaScript 中的相同代码有点麻烦:

myArray = ["item 1", "item 2", "item 3"];
for(i=0; i<myArray.length; i++) {
    myArray[i] = "Do Something Here".
};

我想做的是有这样的事情:

myArray = ["item 1", "item 2", "item 3"];
myArray.each(function(){
    //do stuff
});

问题

是否已经有一种扩展方法可以实现这一点?我忍不住想我在重新发明轮子。如果那里没有任何东西,扩展方法会是最好的吗?

4

5 回答 5

4

您在 EcmaScript 5 中有 forEach():https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach

但它与 IE < 8 不兼容。

所以你可能需要使用这个库来支持所有浏览器:https ://github.com/kriskowal/es5-shim

于 2012-09-11T12:50:01.460 回答
0

ECMA Script 5 包含了一种称为 Array 的方法forEach。用法与jQuery.each数组相同。

不再需要使用for...in循环,因为Array.forEach它很容易实现(请参阅文档中间的 MDN 文档链接)。

为了澄清,forEach将仅循环遍历数组,而不是对象或 jQuery 对象。

于 2012-09-11T12:50:26.473 回答
0

你可以使用

for( i in myArray ){ 
    alert( i + ': ' + myArray[i] ); /* your actions here */
}
于 2012-09-11T13:01:52.033 回答
0

如果您想坚持自己的习惯,jQuery 也可用于节点。

npm install jquery
于 2012-09-11T13:43:04.767 回答
0

如果您的目标是在 node.js 中使用 foreach,您可能需要查看异步库。这允许您并行化您的 foreaches。

https://github.com/caolan/async

于 2012-09-11T14:25:44.683 回答