如何用JS模擬實現陣列的map方法
阿新 • • 發佈:2020-07-31
昨天使用map方法的時候,突然感覺一直在直接用,也沒有試試是怎麼實現的,本來想直接搜一篇文章盤一下子,結果沒搜到合適的,好吧,那就自己來寫一下子吧
今天就來實現一個簡單的map方法
首先我們來看一下map方法的使用以及具體的引數
var arr = ["a","b","c","d","e"]; arr.map(function(currentValue,index,arr){ console.log("當前元素"+currentValue) console.log("當前索引"+index) console.log("陣列物件"+arr) })
map的引數:
currentValue 必須。當前元素的值
index 可選。當期元素的索引值
arr 可選。當期元素屬於的陣列物件
執行結果:
我們先來屢屢思路,直接Array.map()就可以呼叫到map方法,那他應該是在原型鏈上的,然後接收一個匿名函式做引數,通過迴圈呼叫傳入的匿名函式
下面我們來寫一下試試
Array.prototype.newMap = function(fn) { var newArr = []; for(var i = 0; i<this.length; i++){ newArr.push(fn(this[i],i,this)) } return newArr; }
來,呼叫一下試一下子
arr.newMap((currentValue,arr)=>{ console.log("newMap當前元素"+currentValue) console.log("newMap當前索引"+index) console.log("newMap陣列物件"+arr) })
執行結果:
可以看到我們的執行結果是完全一樣的,到這裡簡單的map方法就實現了,可能有一些細節沒注意到,沒關係,只是給大家一個思路而已
以上就是如何用JS模擬實現陣列的map方法的詳細內容,更多關於JS模擬實現陣列的map方法的資料請關注我們其它相關文章!