leomaster

Number Prototype Symbol Iterator

Apr 5th, 2018 (edited)
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Object.defineProperty(Number.prototype, Symbol.iterator, {
  2.   *value({ start = 0, step = 1 } = {}) {
  3.      var inc = this > 0 ? step : -step;
  4.      for (let itr = start; Math.abs(itr) < Math.abs(this); itr += inc) {
  5.         yield itr;
  6.      }
  7.   },
  8.   enumerable: false,
  9.   writable: true,
  10.   configurable: true
  11. });
  12.  
  13. [ ...8 ];  // [0,1,2,3,4,5,6,7,8]
  14. [ ...5[Symbol.iterator]({ start: 3 }) ];  // [3,4,5]
  15. [ ...10[Symbol.iterator]({ start: 2, step: 4 }) ];  // [2,6,10]
  16.  
  17. [ ...-3 ];  // [0,-1,-2,-3]
  18. [ ...(-3)[Symbol.iterator]({ start: 3, step: 2 }) ];  // [3,1,-1,-3]
Add Comment
Please, Sign In to add comment