Passage des arguments


  1. function baseRange(start, end, step=1, fromRight=false) {
  2.     let index = -1,
  3.         length = Math.max(Math.ceil((end - start) / (step)), 0),
  4.         result = Array(length);

  5.     while (length--) {
  6.       result[fromRight ? length : ++index] = start;
  7.       start += step;
  8.     }
  9.     return result;
  10.   } 
  11. let t = baseRange(0,9,4,false);
  1. const baseRange = function (...arg) {
  2.     let [start, end, step = 1, fromRight = false] = arg;
  3.     let index = -1,
  4.         length = Math.max(Math.ceil((end - start) / (step)), 0),
  5.         result = Array(length);
  6.     while (length--) {
  7.         result[fromRight ? length : ++index] = start;
  8.         start += step;
  9.     }
  10.     return result;
  11. }
  12. let t = baseRange(094false);

code

Test A fond la forme

range("  0b011 "," 5",0.5));

Range avec test ! 


Notion avancée


Notez également l'utilisation d'un générateur


 let range = function(start,end,step){
   
   return {
    *[Symbol.iterator]() {
          let value = start;
          while (value < end) {
              yield value;
              value = value + step;
          }
   }
   }
 }

 for (let e of range(1,6,2)) console.log(e);
 let [a,b,...c] = [...range(1,6,1)]
 console.log(a,b,c)