摘要:缘起最近看油管里面有一个关于面试的视频,里面提到了可能会让你写一写等函数,于是也来一起小拔高拔高。于是知道我们写的回调会被调用,并且传一个进来。其中累加值的初始值是我们传的,如果我们没传,那么累加值的初始值就会是数组的第一个元素。
缘起:最近看油管里面有一个关于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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/98905.html
摘要:实现首先可以写一个壳子函数,包裹一个将要反复递归调用自身的函数。如果是引用型,将对应的赋值为递归拷贝。另外在中需要使用进行判断,因为我们只想拷贝自身的属性。 最近想全职当码农,面试时候被问到了深拷贝,我噼里啪啦说了一通,感觉很牛逼,问我自己写过没有,我说没有,但是我可以写。其实我很心虚,估计现场写会卡壳。。。。。 思路 深拷贝需要迭代拷贝对象的所有属性,如果属性是引用型: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年仅仅还剩下不到两...
阅读 3674·2021-11-23 09:51
阅读 1035·2021-11-19 11:30
阅读 3360·2019-08-29 14:16
阅读 3370·2019-08-29 12:12
阅读 2363·2019-08-26 13:40
阅读 3471·2019-08-26 12:21
阅读 3073·2019-08-26 11:55
阅读 2221·2019-08-26 11:35