js基础编程-题⽬12push与pop 整理下初学时做过的js基础编程题⽬和⼤家分享以下,如果⼤家觉得有⽤,别忘了点⼀下赞哦push 和 pop
⽤代码实现⼀个数组的push⽅法
⾸先,我们要了解,push和pop⽅法都是改变原数组的⽅法
push:在数组末尾添加成员,返回添加后数组长度
pop:在数组末尾剪切⼀个成员,返回剪切的值
封装push⽅法:
Push=function(...args){
for(let i =0;i<args.length;i++){
this[this.length]= args[i]
}
return this.length
js arguments
}
⽤ arguments 封装 push
Push=function(){
for(let i =0;i<arguments.length;i++){
this[this.length]= arguments[i]
}
return this.length
}
封装pop⽅法:
Pop=function(){
let res =this[this.length-1]
this.length--
return res
}
这⾥扩展下 shift 和 unshift ⽅法的封装
unshift:在数组开头添加成员,返回添加后数组长度
shift:在数组开头剪切⼀个成员,返回剪切的值
封装 unshift ⽅法
利⽤splice⽅法
Unshift=function(...args){
this.splice(0,0,...args)
return this.length
}
利⽤⾃⼰的出栈进栈
Unshift=function(...args){
function reverse(arr,start,end){
while(start<end){
let temp = arr[start]
arr[start]= arr[end]
arr[end]= temp
start ++
end --
}
}
reverse(this,0,this.length-1)
for(let i = args.length-1;i>=0;i--){
this[this.length]= args[i]
}
reverse(this,0,this.length-1)
return this.length
}
封装 shift ⽅法
利⽤splice⽅法
Shift=function(){
return Number(this.splice(0,1)+'')
}
利⽤⾃⼰的出栈进栈
Shift=function(){
function reverce(arr,start,end){
while(start<end){
let temp = arr[start]
arr[start]= arr[end]
arr[end]= temp
start ++
end --
}
}
reverce(this,0,this.length-1)
let res =this[this.length-1]
this.length --
reverce(this,0,this.length-1)
return res
}
这⾥扩展⼀下我之前你的⼩想法
我之前想着简单封装下⾯不是更简单
Push=function(...args){
this=[...this,...args]
}
[].myPush()//SyntaxError: Invalid left-hand side in assignment
这样会触发⼀个 语法错误(低级错误),系统对这个 this 有保护机制。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。