介绍
小编这次要给大家分享的是JS如何实现手写forEach算法,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
<强>手写forEach 强>
<代码> forEach() 代码>方法对数组的每个元素执行一次提供的函数
加勒比海盗。forEach(回调(currentValue[、索引[,数组]])[,thisArg]);
引用><李>
调
<李> currentValue
李> <李>没有返回值李>
,,数组中正在处理的当前元素。李> <李>指数可选
,,数组中正在处理的当前元素的索引。李> <李>阵列可选
,,forEach()方法正在操作的数组。李> <李> thisArg可选
,,可选参数。当执行回调函数回调时,用作这样的值。李>如果提供了一个参数给<代码> forEach 代码>函数,则参数将会作为回调函数中的<代码> 代码>值,否则<代码> 代码>值为。回调函数中<代码> 代码>的绑定是根据函数被调用时通用的<代码> 代码>绑定规则来决定的。
功能计数器(){ 这一点。金额=0; 这一点。数=0; }//因为thisArg参数(这)传给了forEach(),每次调用时,它都被传给回调函数,作为它的值。 Counter.prototype。添加=function(数组){ array.forEach(函数(条目){ 这一点。和+=条目; + + this.count; });//^——注意 }; const obj=new计数器(); obj。添加((2、5、9)); obj.count;//3===(1 + 1 + 1) obj.sum;//16===(2 + 5 + 9)<李>每个数组都有这个方法李> <>李回调参数为:每一项,索引,原数组李>
Array.prototype。thisArg forEach=函数(fn) { var _this; 如果(typeof fn !==癴unction") { 把“参数必须为函数“; } 如果参数。长度比;1){ _this=thisArg; } 如果(! Array.isArray (arr)) { 把“只能对数组使用forEach方法“; } (让指数=0;指数& lt;arr.length;指数+ +){ fn。调用(_this, arr(指数)指数,arr); } };看完这篇关于JS如何实现手写forEach算法的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
JS如何实现手写forEach算法