资讯专栏INFORMATION COLUMN

js中Array方法重写(一):myPush(),myPop(),myUnshift(),myShi

helloworldcoding / 2019人阅读

摘要:一数组入栈二数组出栈三数组入队四数组出队纯手写,如有不善,请指正

一、myPush()

</>复制代码

  1. //myPush() 数组入栈
  2. Array.prototype.myPush = function(){
  3. var L = this.length;
  4. for(var i = L ; i < L + arguments.length ; i++){
  5. this[i] = arguments[i - L];
  6. }
  7. return this.length;
  8. }
二、myPop()

</>复制代码

  1. //Mypop() 数组出栈
  2. Array.prototype.myPop = function(){
  3. if (this.length == 0) {
  4. return undefined;
  5. }
  6. var last = this[this.length-1];
  7. this.length = this.length-1;
  8. return last;
  9. }
三、myUnshitf()

</>复制代码

  1. //myUnshift 数组入队
  2. Array.prototype.myUnshift = function(){
  3. var L = this.length;
  4. for(var i = L + arguments.length - 1 ; i >= 0 ; i--){
  5. if(i > arguments.length - 1){
  6. this[i] = this[i - arguments.length];
  7. }else{
  8. this[i] = arguments[i];
  9. }
  10. }
  11. return this.length;
  12. }
四、myShitf()

</>复制代码

  1. //myShift()数组出队
  2. Array.prototype.myShift = function(){
  3. if (this.length == 0) {
  4. return undefined;
  5. }
  6. var firstElement = this[0];
  7. for(var i = 1 ; i < this.length ; i++){
  8. this[i-1] = this[i];
  9. }
  10. this.length = this.length-1;
  11. return firstElement;
  12. }

</>复制代码

  1. 纯手写,如有不善,请指正 ^_^

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52306.html

相关文章

  • jsArray方法重写):myPush(),myPop(),myUnshift(),myShi

    摘要:一数组入栈二数组出栈三数组入队四数组出队纯手写,如有不善,请指正 一、myPush() //myPush() 数组入栈 Array.prototype.myPush = function(){ var L = this.length; for(var i = L ; i < L + arguments.length ; i++){ this[i] = a...

    loonggg 评论0 收藏0
  • jsArray方法重写(四):mySlice() ; mySplice()

    一、mySlice() //mySplice 选取数组的的一部分,并返回一个新数组 Array.prototype.mySlice = function(start,end){ var arr = []; if(arguments.length == 0){ //如果不传参数,返回一个原数组副本 start = 0; end...

    Michael_Ding 评论0 收藏0
  • 两个函数式解决大数相加的方法

    摘要:有副作用尾递归,即在函数末尾自调用自己想的使用累加器实现函数式重写下面这种写法,很不优雅最好可以实现组合任意个函数,效果如下实现思路在我在 解决大数相加的方法有很多,网上很容易搜到,下面介绍两种,一种是在网上抄的,一种是自己想的,我将他们都用函数式的方式重写了一遍。 这种是在网上抄的,的确非常简洁 function add(a,b) { let res=, c=0; a = a...

    AlanKeene 评论0 收藏0
  • jsArray方法重写(二):myForEach;myEvery;mySome;myFilter;

    摘要:一数组每个元素都执行一次回调函数二检测数值元素的每个元素是否都符合条件三检测数组元素中是否有元素符合指定条件四检测数值元素,并返回符合条件所有元素的数组五将数组元素计算为一个值从左到右以上回调函数只是手写简化版,无法传参数,若有误或建议,请 一、myForEach //myForeach 数组每个元素都执行一次回调函数 Array.prototype.myForEach = fu...

    blair 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<