如何用JS模擬實(shí)現(xiàn)數(shù)組的map方法
昨天使用map方法的時(shí)候,突然感覺(jué)一直在直接用,也沒(méi)有試試是怎么實(shí)現(xiàn)的,本來(lái)想直接搜一篇文章盤(pán)一下子,結(jié)果沒(méi)搜到合適的,好吧,那就自己來(lái)寫(xiě)一下子吧
今天就來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的map方法
首先我們來(lái)看一下map方法的使用以及具體的參數(shù)
var arr = ['a','b','c','d','e']; arr.map(function(currentValue,index,arr){ console.log('當(dāng)前元素'+currentValue) console.log('當(dāng)前索引'+index) console.log('數(shù)組對(duì)象'+arr) })
map的參數(shù):
currentValue 必須。當(dāng)前元素的值
index 可選。當(dāng)期元素的索引值
arr 可選。當(dāng)期元素屬于的數(shù)組對(duì)象
運(yùn)行結(jié)果:
我們先來(lái)屢屢思路,直接Array.map()就可以調(diào)用到map方法,那他應(yīng)該是在原型鏈上的,然后接收一個(gè)匿名函數(shù)做參數(shù),通過(guò)循環(huán)調(diào)用傳入的匿名函數(shù)
下面我們來(lái)寫(xiě)一下試試
Array.prototype.newMap = function(fn) {var newArr = [];for(var i = 0; i<this.length; i++){newArr.push(fn(this[i],i,this))}return newArr;}
來(lái),調(diào)用一下試一下子
arr.newMap((currentValue,index,arr)=>{ console.log('newMap當(dāng)前元素'+currentValue) console.log('newMap當(dāng)前索引'+index) console.log('newMap數(shù)組對(duì)象'+arr) })
運(yùn)行結(jié)果:
可以看到我們的運(yùn)行結(jié)果是完全一樣的,到這里簡(jiǎn)單的map方法就實(shí)現(xiàn)了,可能有一些細(xì)節(jié)沒(méi)注意到,沒(méi)關(guān)系,只是給大家一個(gè)思路而已
以上就是如何用JS模擬實(shí)現(xiàn)數(shù)組的map方法的詳細(xì)內(nèi)容,更多關(guān)于JS模擬實(shí)現(xiàn)數(shù)組的map方法的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法2. SpringMVC+Jquery實(shí)現(xiàn)Ajax功能3. JavaScript實(shí)現(xiàn)組件化和模塊化方法詳解4. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向5. ASP實(shí)現(xiàn)加法驗(yàn)證碼6. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法7. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息8. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲9. 刪除docker里建立容器的操作方法10. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明
