将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么

What is the best way to convert the jQuery .each() method to a native JavaScript abstraction?

本文关键字:方法 JavaScript 抽象的 是什么 最佳 转换 ech jQuery      更新时间:2023-09-26

嗨,谢谢你的光临!

背景

我正在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
});

问题

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

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

但它与IE<8.

因此,您可能需要使用此库才能得到所有浏览器的支持:https://github.com/kriskowal/es5-shim

ECMA Script 5包含一个名为forEach的Array方法。用法与阵列的jQuery.each相同。

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

为了明确起见,forEach将只循环通过数组,而不是对象或jQuery对象。

您可以使用

for( i in myArray ){ 
    alert( i + ': ' + myArray[i] ); /* your actions here */
}

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

npm install jquery

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

https://github.com/caolan/async