将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
What is the best way to convert the jQuery .each() method to a native JavaScript abstraction?
嗨,谢谢你的光临!
背景
我正在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
相关文章:
- object.仅冻结对象方法.JavaScript
- 快速方法 Javascript/Jquery/etc 检索表单中包含的所有 aspnet:textbox (input)
- 查看整个画布是否被涂成一种颜色的方法.Javascript + processing.js
- 从方法 JavaScript 访问对象变量
- pop()方法javascript没有给出完整的输出
- 如何格式化setInterval方法JavaScript的运行时间
- 正则表达式/替换方法Javascript
- 将vars传递给其他方法javascript
- 寻找一种简化if/else语句的方法.javascript
- focus()或select()方法javascript,在Chrome中性能缓慢
- 未捕获的类型错误:对象没有方法..Javascript
- 对象方法javascript中的方法/函数
- 构造函数中的私有方法(Javascript,坏主意?)
- 查看数组是否有数组的最简单方法?Javascript
- 扁平化数组元素(不是整个数组)的有效方法JavaScript
- 最常用的生成PDF报告的方法(JavaScript,node.js)
- 创建多维数组与地图方法:javascript
- 对象方法Javascript HTML DOM中的多个事件监听器
- 卡住了.adddeventlistener不能在属性内处理我的方法.Javascript
- 任何获取文档选择的x、y、w、h的方法(JavaScript)