Fundamental JavaScript Programming Exercises

JavaScriptJavaScriptBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In this lab, we will be exploring JavaScript programming by completing a series of exercises designed to help build fundamental skills. From basic syntax and data types to more advanced concepts like asynchronous programming and functional programming, this lab will provide hands-on experience that will help you become a proficient JavaScript developer. Whether you're new to programming or looking to expand your skills, this lab will give you the tools you need to succeed.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("`Conditional Statements`") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("`Spread and Rest Operators`") subgraph Lab Skills javascript/variables -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} javascript/data_types -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} javascript/arith_ops -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} javascript/comp_ops -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} javascript/cond_stmts -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} javascript/spread_rest -.-> lab-28492{{"`Fundamental JavaScript Programming Exercises`"}} end

Maximum Subarray Algorithm

To practice coding, open the Terminal/SSH and type node. This algorithm finds a contiguous subarray with the largest sum within an array of numbers. To implement this algorithm, follow these steps:

  • Use a greedy approach to keep track of the current sum and the current maximum, maxSum. Set maxSum to -Infinity to ensure that the highest negative value is returned, if all values are negative.
  • Define variables to keep track of the maximum start index, sMax, maximum end index, eMax and current start index, s.
  • Use Array.prototype.forEach() to iterate over the values and add the current value to the sum.
  • If the current sum is greater than maxSum, update the index values and the maxSum.
  • If the sum is below 0, reset it to 0 and update the value of s to the next index.
  • Use Array.prototype.slice() to return the subarray indicated by the index variables.

Here's the JavaScript code for the algorithm:

const maxSubarray = (...arr) => {
  let maxSum = -Infinity,
    sum = 0;
  let sMax = 0,
    eMax = arr.length - 1,
    s = 0;

  arr.forEach((n, i) => {
    sum += n;
    if (maxSum < sum) {
      maxSum = sum;
      sMax = s;
      eMax = i;
    }

    if (sum < 0) {
      sum = 0;
      s = i + 1;
    }
  });

  return arr.slice(sMax, eMax + 1);
};

Here's an example of how to use the function:

maxSubarray(-2, 1, -3, 4, -1, 2, 1, -5, 4); // [4, -1, 2, 1]

Summary

Congratulations! You have completed the Maximum Subarray lab. You can practice more labs in LabEx to improve your skills.

Other JavaScript Tutorials you may like