昨天复现了pop shift splice 今天复现一些添加的函数,比如push和unshift
最简单的方法就是利用es6中arg来添加 比如
function unshifts(...arg){
for(let i=this.length+arg.length-1;i>0;i--){
this[i]= i>arg.length-1?this[i-arg.length]:arg[i]
}
}
Array.prototype.unshifts = unshifts
当然这是我觉得写的比较优雅的方法,我们可以刨析些来看
function unshifts(...arg){
for(let i=this.length+arg.length-1;i>0;i--){
//思路是向后移 传入值的位数,然后空出来的位置放入传入的参数,简简单单!
if(i>arg.length-1){
this[i] = this[i-arg.length]
}else{
this[i] = arg[i]
}
}
}
Array.prototype.unshifts = unshifts
好了来复现push
function pushs(...arg){
for(let i = 0; i<arg.length;i++){
this[this.length] = arg[i]
}
}
Array.prototype.pushs = pushs
个人学习前端事件较短,希望各位大佬能够给些建议,抱拳!