我是靠谱客的博主 传统路人,最近开发中收集的这篇文章主要介绍数组原型上的方法实现原理(Array.prototype.pop/push/shift/unshift),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组原型上的方法实现原理</title> </head> <body> </body> </html> <script type="text/javascript"> var ary=[1,2,3,4,5,6,7,8]; //pop() Array.prototype.pop=function () { //this :当前实例 var num=this[this.length-1]; this.length--; return num; }; console.log(ary.pop()); console.log(ary); //push() Array.prototype.push=function () { for (var i=0;i<arguments.length;i++){ this[this.length]=arguments[i] } return this.length; }; console.log(ary.push(1, 2, 3)); console.log(ary); //3.shift() //[1,2,3,4,5,6,7,8]; //[2,3,4,5,6,7,8,8] //[2,3,4,5,6,7,8] Array.prototype.shift=function () { var num=this[0]; for(var i=1;i<this.length;i++){ this[i-1]=this[i]; } this.length--; return num; }; console.log(ary.shift()); console.log(ary); //unshift() Array.prototype.unshift=function () { var ary=[...arguments,...this]; this.length=ary.length; for(var i=0;i<ary.length;i++){ this[i]=ary[i]; } return ary.length; }; Array.prototype.unshift=function () { var str=""; for(var i=0;i<arguments.length;i++){ if(typeof arguments[i]=="string"){ str+="'"+arguments[i]+"',"; }else { str+=arguments[i]+","; } } for(var i=0;i<this.length;i++){ if(typeof this[i]=="string"){ str+="'"+this[i]+"'," }else { str+=this[i]+"," } } var ary=eval("["+str+"]"); this.length=ary.length; for(var i=0;i<ary.length;i++){ this[i]=ary[i]; } return ary.length; }; ary.unshift("哈哈","嘿嘿"); console.log(ary); </script>
最后
以上就是传统路人为你收集整理的数组原型上的方法实现原理(Array.prototype.pop/push/shift/unshift)的全部内容,希望文章能够帮你解决数组原型上的方法实现原理(Array.prototype.pop/push/shift/unshift)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复