Coding, snippets, pretty and commented. (JavaScript)

Beroende på vilken situation man befinner sig i så behöver man leverera olika saker.

Samma sak gäller programmering, jag är inte sen att erkänna mig skyldig till att älska funktioner som löser svåra uppgifter på ett fåtal rader.

"use strict";
function adjust(x, size, turn) {
    var noOfBlanks = size - (x = x.toString()).length, blanks = "";
    while (blanks.length < noOfBlanks) { blanks += " "; }
    return [x, x + blanks, blanks + x][(turn === 1 || turn === 2) ? +turn : 0];
}

Det kan vara bra att ha snygg kod om många ska arbeta med den eller om man helt enkelt lättare ska kunna följa vad som händer

"use strict";
function adjust(x, size, turn) {
    var noOfBlanks, blanks, position, out = [];
    x = x.toString();
    noOfBlanks = size - x.length;
    blanks = "";
    while (blanks.length < noOfBlanks) {
        blanks += " ";
    }
    out.push(x);
    out.push(x + blanks);
    out.push(blanks + x);
    if (turn === 1) {
        position = 1;
    } else if (turn === 2) {
        position = 2;
    } else {
        position = 0;
    }
    return out[position];
}

Fast ska man nu verkligen komma ihåg vad det var som hände, även om funktionen är relativt enkelt strukturerad så bör man ha med kommentarer.

"use strict";
/* function call adjust
    x is a string
    size is total length of the output string
    turn defines right adjust by using input int 2 and left adjust by using input int 1.
    All other values will return the the input string simply converted to a string without adjustment.
    example left adjust
    adjust("Friday", 7, 1);
    returns "Friday "
    example right adjust
    adjust(1, 2, 2);
    returns " 1"
*/
function adjust(x, size, turn) {
    // Defines variables noOfBlanks, blanks, position and out.
    var noOfBlanks, blanks, position, out;
    // Ensures that x is a string value, decimal or float would be bad.
    x = x.toString();
    // calculates the amout of spaces we want.
    noOfBlanks = size - x.length;
    // start out with a empty variable for the spaces
    blanks = "";
    // loops untill we have enough spaces
    while (blanks.length < noOfBlanks) {
        // each iteration adds one space
        blanks += " ";
    }
    // number 1 is a left adjust
    if (turn === 1) {
        // sets output to left adjust
        out = x + blanks;
    // number 2 is a right adjust
    } else if (turn === 2) {
        // sets output to right adjust
        out = blanks + x;
    // if all else fails we return the input as a string.
    } else {
        // return the input but converted to a string.
        out = x;
    }
    // outputs the result
    return out[position];
}

Huvudsaken är egentligen att en funktion utför det man har för avsikt att den ska göra, efter det följer dokumentationen för funktionen och efter det kommer rimligen hur lättläst den är.

Korrekt dokumentation på den första funktionen skulle resultera i att man får lättare att läsa vad den utför.

"use strict";
/* Call adjust with x as string, size as int, turn as int. 
    x is the string that will be right or left adjusted.
    size defines the output length
    turn decides right (2) or left (1) adjust
*/
function adjust(x, size, turn) {
    /* noOfBlank is set to the amount of spaces that we want to add using size - lenght of x as a string.
    Sets blanks as a empty string by default. */
    var noOfBlanks = size - (x = x.toString()).length, blanks = "";
    // fills blanks with the desired amount of spaces 
    while (blanks.length < noOfBlanks) { blanks += " "; }
    /* returns a selected value from an aray with three positions [0, 1, 2] definde by input int turn.
    turn is 1 or 2, otherwise it is set to 0 and the input is returned as a string. */
    return [x, x + blanks, blanks + x][(turn === 1 || turn === 2) ? +turn : 0];
}
This entry was posted in Flipped Classroom, Informationssystem and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *