Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Array.prototype.myCopyWithin = function(target, start, end) {
  2.     const o = Object(this);
  3.     const len = o.length | 0;
  4.  
  5.     const relativeTarget = target | 0;
  6.     const to = relativeTarget >= 0 ?
  7.     Math.min(relativeTarget, len) : Math.max(len + relativeTarget, 0);
  8.    
  9.     const relativeStart = start | 0;
  10.     const from = relativeStart >= 0 ?
  11.     Math.min(relativeStart, len) : Math.max(len + relativeStart, 0);
  12.    
  13.     const relativeEnd = end ? end | 0 : len;
  14.     const final = relativeEnd >= 0 ?
  15.     Math.min(relativeEnd, len) : Math.max(len + relativeEnd, 0);
  16.  
  17.     const copy = JSON.parse(JSON.stringify(o));
  18.    
  19.     (function copyElements(t, s, e) {
  20.         if (s < e && t < len) {
  21.             o[t] = copy[s];
  22.             copyElements(t + 1, s + 1, e);
  23.         }
  24.         return o;
  25.     })(to, from, final);
  26.  
  27.     return o;
  28. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement