Má JavaScript metódu ako "range()" na generovanie rozsahu v rámci zadaných hraníc?

V jazyku PHP môžete...

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

To znamená, že existuje funkcia, ktorá umožňuje získať rozsah čísel alebo znakov odovzdaním hornej a dolnej hranice.

Existuje na to niečo zabudované v JavaScripte? Ak nie, ako by som to mal implementovať?

Riešenie

Funguje pre znaky a čísla, dopredu alebo dozadu s voliteľným krokom.


var range = function(start, end, step) {
    var range = [];
    var typeofStart = typeof start;
    var typeofEnd = typeof end;

    if (step === 0) {
        throw TypeError("Step cannot be zero.");
    }

    if (typeofStart == "undefined" || typeofEnd == "undefined") {
        throw TypeError("Must pass start and end arguments.");
    } else if (typeofStart != typeofEnd) {
        throw TypeError("Start and end arguments must be of same type.");
    }

    typeof step == "undefined" && (step = 1);

    if (end < start) {
        step = -step;
    }

    if (typeofStart == "number") {

        while (step > 0 ? end >= start : end  0 ? end >= start : end 
Komentáre (0)

Array.range= function(a, b, step){
    var A= [];
    if(typeof a== 'number'){
        A[0]= a;
        step= step || 1;
        while(a+step
Komentáre (1)

Štandardný Javascript nemá zabudovanú funkciu na generovanie rozsahov. Viaceré javascriptové frameworky pridávajú podporu pre takéto funkcie, alebo ako už uviedli iní, vždy si môžete vytvoriť vlastnú.

Ak by ste si to chceli ešte raz overiť, definitívnym zdrojom informácií je norma ECMA-262.

Komentáre (4)