Does JavaScript have a method like “range()” to generate a range within the supplied bounds?

后端 未结 30 3539
广开言路
广开言路 2020-11-22 00:51

In PHP, you can do...

range(1, 3); // Array(1, 2, 3)
range(\"A\", \"C\"); // Array(\"A\", \"B\", \"C\")

That is, there is a function that l

30条回答
  •  佛祖请我去吃肉
    2020-11-22 01:56

    Array.range = function(a, b, step){
        var A = [];
        if(typeof a == 'number'){
            A[0] = a;
            step = step || 1;
            while(a+step <= b){
                A[A.length]= a+= step;
            }
        }
        else {
            var s = 'abcdefghijklmnopqrstuvwxyz';
            if(a === a.toUpperCase()){
                b = b.toUpperCase();
                s = s.toUpperCase();
            }
            s = s.substring(s.indexOf(a), s.indexOf(b)+ 1);
            A = s.split('');        
        }
        return A;
    }
        
        
    Array.range(0,10);
    // [0,1,2,3,4,5,6,7,8,9,10]
        
    Array.range(-100,100,20);
    // [-100,-80,-60,-40,-20,0,20,40,60,80,100]
        
    Array.range('A','F');
    // ['A','B','C','D','E','F')
        
    Array.range('m','r');
    // ['m','n','o','p','q','r']
    

提交回复
热议问题