forEach() 方法对数组的每个元素执行一次给定的函数。
Array.prototype.forEach = function(callback){
var arr = this;
for(var i = 0; i < arr.length; i++){
callback(arr[i], i);
}
return;
}
// 测试
var testArr = [1,2,3,4,5]
testArr.forEach((item,index)=>console.log(item, index))
var arr = this;
这里是关键,这样在大多数情况下就不会改变原数据
什么?ES6新增数组函数调用时都不会改变原数组?那你就错了。
推荐看我的这篇博文https://blog.csdn.net/RkHker/article/details/104602938,带你认识不一样的ES6新增数组函数(虽然是有点啰嗦的博文)。
大家随便拿个数组测试一下就发现一个简版的forEach就实现好了。
另外需要注意这不是完整版的forEach(),完整版的forEach()包含更多的参数,这里考虑到简易性和易懂性就只提到常用的item,index两个回调函数里的参数。
如有错漏,请评论指出。