欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

手动实现 Js 数组 forEach map 方法

程序员文章站 2022-06-09 17:02:21
...
**手动实现** js 数组 forEach map 方法
我们都知道 forEach map 都是挂载在数组原型上的方法,为所有数组共用
而我们需要制作实现 forEach map 的效果 也需要在原型上创建一个属于自己的原型方法

实现forEach 方法 如下:
// 步骤一
Array.prototype.myforEach = function (fun){
	// 循环调用传进来的函数参数 并给予函数传递实参
	for(let i  = 0 ; i < this.length ; i++){
		fun(this[i],i,this)
	}
	// forEach 是没有返回值的 这里我们返回一个 undefined
	return undefined
}
// 声明一个数组
let Arr = ['Mi','六']
// 调用我们创建的 方法 并传入参数(参数为函数)
Arr.myforEach((item,index,_this)=>{
	console.log(item,index,_this);
	/* 结果如下
	Mi 0 ["Mi", "六"]
	六 1 ["Mi", "六"]
	自己实现的forEach方法就已经实现了
	*/
})
实现 map方法如下:
// 步骤一
Array.prototype.myMap = function (fun){
	// 循环调用传进来的函数参数 并给予函数传递实参
	// map 方法返回值是一个新数组 这里我们声明一个数组接受返回值
	let arr = []
	for(let i  = 0 ; i < this.length ; i++){
		// 将 fun 的返回值添加到返回数组里去
		arr.push(fun(this[i],i,this))
	}
	// 将 返回值数组 返回
	return arr 
}

// 调用我们创建的 方法 并传入参数(参数为函数)

let newArr = Arr.myMap ((item,index,_this)=>{
	return index+item
})
// 打印 newArr 查看效果 
console.log(newArr);
/* 结果如下
["0Mi", "1六"]
自己实现的map方法就已经实现了
*/

相关标签: javascript js