摘要:緣起最近看油管里面有一個關于面試的視頻,里面提到了可能會讓你寫一寫等函數,于是也來一起小拔高拔高。于是知道我們寫的回調會被調用,并且傳一個進來。其中累加值的初始值是我們傳的,如果我們沒傳,那么累加值的初始值就會是數組的第一個元素。
緣起:最近看油管里面有一個關于js面試的視頻,里面提到了可能會讓你寫一寫reduce等函數,于是也來一起小拔高拔高。先寫寫map
首先回憶平時是如何使用的map。
// const newarr = arr.map(v=>v*v)
于是知道我們寫的回調會被map調用,并且傳一個v進來。
Array.prototype.myMap = function (callback){ const newArray = [] this.forEach(ele => { newArray.push(callback(ele)) }) return newArray }開始寫reduce
先上mdn查查reduce的具體參數和用法。
// const afterReduceVal = arr.reduce((acc,cur,idx,src)=>{ do something and return acc},init)
也就是說reduce會調用我們的回調,并且傳給我們累加值acc,當前值cur,當前索引idx,源數組src。其中累加值的初始值是我們傳的init,如果我們沒傳,那么累加值的初始值就會是數組的第一個元素。
Array.prototype.myReduce = function(callback,init) { let acc,idx; if(init){ acc = init // 檢測我們是不是傳了init idx = 0 } else { acc = this[0] idx = 1 } for(let i = idx;istackblitz
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/98905.html
摘要:實現(xiàn)首先可以寫一個殼子函數,包裹一個將要反復遞歸調用自身的函數。如果是引用型,將對應的賦值為遞歸拷貝。另外在中需要使用進行判斷,因為我們只想拷貝自身的屬性。 最近想全職當碼農,面試時候被問到了深拷貝,我噼里啪啦說了一通,感覺很牛逼,問我自己寫過沒有,我說沒有,但是我可以寫。其實我很心虛,估計現(xiàn)場寫會卡殼。。。。。 思路 深拷貝需要迭代拷貝對象的所有屬性,如果屬性是引用型:Object,...
摘要:站在這個時間點上,我對自己之前三次失敗的面試經歷做了一次深度回顧。關于我第三次面試失敗的經歷,依然是與輪播圖有關。當然,這次思特奇面試之旅,最后也是以失敗告終,這也是我離進大廠最近的一次。 showImg(https://segmentfault.com/img/bVYQuP?w=528&h=513); 前言 時間的齒輪已經來到了2017年的11月份,距離2018年僅僅還剩下不到兩...
摘要:站在這個時間點上,我對自己之前三次失敗的面試經歷做了一次深度回顧。關于我第三次面試失敗的經歷,依然是與輪播圖有關。當然,這次思特奇面試之旅,最后也是以失敗告終,這也是我離進大廠最近的一次。 showImg(https://segmentfault.com/img/bVYQuP?w=528&h=513); 前言 時間的齒輪已經來到了2017年的11月份,距離2018年僅僅還剩下不到兩...
閱讀 3690·2021-11-23 09:51
閱讀 1051·2021-11-19 11:30
閱讀 3376·2019-08-29 14:16
閱讀 3383·2019-08-29 12:12
閱讀 2378·2019-08-26 13:40
閱讀 3492·2019-08-26 12:21
閱讀 3085·2019-08-26 11:55
閱讀 2231·2019-08-26 11:35