Skip to content

Instantly share code, notes, and snippets.

@richarddprasad
Created January 30, 2020 02:56
Show Gist options
  • Select an option

  • Save richarddprasad/0921048c27922f963a5f9f52f9637351 to your computer and use it in GitHub Desktop.

Select an option

Save richarddprasad/0921048c27922f963a5f9f52f9637351 to your computer and use it in GitHub Desktop.

Revisions

  1. richarddprasad created this gist Jan 30, 2020.
    128 changes: 128 additions & 0 deletions intro-js-algorithms.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,128 @@
    function upperCaseFirst(inputStr) {
    var valueOfFirstChar = inputStr.charCodeAt(0);
    console.log('Value of first character:', valueOfFirstChar);

    var upperCaseLetter = String.fromCharCode(valueOfFirstChar - 32);
    console.log('Uppercase first character:', upperCaseLetter);

    var restOfString = inputStr.slice(1);
    console.log('Rest of the string:', restOfString);

    var finalResult = upperCaseLetter + restOfString;
    console.log('Final result:', finalResult);

    return finalResult;
    }

    var upperCaseResult = upperCaseFirst('goldfish');
    console.log(upperCaseResult)

    /****************************************************************/

    function titleCase(inputStr) {
    var tokens = inputStr.split(' ');
    console.log('Word tokens:', tokens);

    // Option 1: Use map()
    var upperCaseTokens1 = tokens.map(word => upperCaseFirst(word));
    console.log('UpperCase1 word tokens:', upperCaseTokens1);

    // Option 2: Use a for loop
    var upperCaseTokens2 = [];
    for (var i = 0; i < tokens.length; i++) {
    upperCaseTokens2.push(upperCaseFirst(tokens[i]));
    }
    console.log('UpperCase2 word tokens:', upperCaseTokens2);

    var finalResult = upperCaseTokens1.join(' ');
    console.log('Final result:', finalResult);

    return finalResult;
    }

    var titleCaseResult = titleCase('learn how to code for beginners');
    console.log(titleCaseResult, "\n\n");


    function titleCase2(inputStr) {
    return inputStr.split(' ').map(w => upperCaseFirst(w)).join(' ');
    }

    console.log(titleCase2('i am a way shorter implementation'));

    /****************************************************************/

    function replaceChar(inputStr, replaceThis, withThis) {
    var retval = [];

    for (var i = 0; i < inputStr.length; i++) {
    if (inputStr[i] === replaceThis) {
    retval.push(withThis);
    } else {
    retval.push(inputStr[i]);
    }
    }

    return retval.join('');
    }

    console.log(replaceChar('hello world', 'l', 'X')); // heXXo worXd

    /****************************************************************/

    function trimString(inputStr) {
    // Step 1
    var firstIndex = 0;
    while (firstIndex < inputStr.length && inputStr[firstIndex] === ' ') {
    ++firstIndex;
    }
    console.log('Index of first non-whitespace character:', firstIndex);

    // Step 2
    var secondIndex = inputStr.length - 1;
    while (secondIndex > firstIndex && inputStr[secondIndex] === ' ') {
    --secondIndex;
    }
    console.log('Index of second non-whitespace character:', secondIndex);

    // Step 3
    return inputStr.slice(firstIndex, secondIndex + 1);
    }

    // Test our algorithm
    var untrimmedString = ' i need trimming ';
    console.log('Length of untrimmed string:', untrimmedString.length);

    var trimmedResult = trimString(untrimmedString);
    console.log('After trimming:', trimmedResult);
    console.log('Length of trimmed string:', trimmedResult.length);

    /****************************************************************/

    function reverseString1(inputStr) {
    var retval = [];
    var tokens = inputStr.split('');

    for (var i = tokens.length - 1; i >= 0; i--) {
    retval.push(inputStr[i]);
    }

    return retval.join('');
    }

    console.log(reverseString1('Hello World')); // dlroW olleH


    function reverseString2(inputStr) {
    var retval = new Array(inputStr.length);
    var tokens = inputStr.split('');

    for (var i = 0, j = tokens.length - 1; i <= j; i++ , j--) {
    retval[i] = tokens[j];
    retval[j] = tokens[i]
    }

    return retval.join('');
    }

    console.log(reverseString2('Hello World')); // dlroW olleH