- 01Setting Up (What You'll Need)
- 02Creating Variables
- 03Conditionals (if Statements)
- 04Loops (for Statements)
- 05Creating Functions
- 06Working with Arrays
- 07Working with Objects
- 08Loops (while Statements)
- 09Working with Strings
- 10Using Classes (Object-Oriented Programming)
- 11Error Handling (try...catch)
- 12Destructuring and the Spread Syntax
- 13Async Code (Promise / async & await)
- 14Advanced Array Methods (filter and reduce)
- 15The switch Statement
- 16The Ternary Operator
- 17Inheritance (Extending Classes)
- 18How to Write Comments
- 19Logical Operators (AND, OR, NOT)
- 20Constants (Making Read-Only Values with const)
- 21Splitting and Joining Strings (split and join)
- 22Null-Safe Syntax (?? and ?.)
- 23Searching Arrays and Collections (includes and find)
- 24Transforming Arrays with map
- 25Two-Dimensional Arrays (Table-Shaped Data)
- 26Building a Custom Error Class
- 27Default Arguments (Setting Initial Values for Parameters)
- 28Using Set (Collections)
- 29Verifying Correctness with assert (Your First Step Into Testing)
- 30Higher-Order Functions (Passing a Function as an Argument)
- 31Stacks and Queues (Basic Data Structures)
- 32The Basics of Type Conversion (Casting)
- 33Introduction to Regular Expressions (Pattern Matching)
- 34The Binary Search Algorithm
- 35Building a Caesar Cipher (a Letter-Shifting Cipher)
- 36Understanding How Bubble Sort Works
- 37Building and Displaying Dates (Basic Year/Month/Day Operations)
- 38Writing Several Unit Tests Together (Multiple Test Cases)
- 39Speeding Up Calculations with Memoization (Caching)
- 40Normalizing Strings (trim and Case Unification)
- 41The Difference Between Shallow Copy and Deep Copy
- 42The Basics of Enums (Enumerated Types)
- 43Flattening Arrays (flatten)
- 44Reversing a String and Checking for a Palindrome
- 45Pairing Up Two Arrays (a zip Operation)
- 46Rounding Numbers (floor, ceil, and round)
- 47Multi-Line Strings (Template Literals)
- 48Returning Multiple Values from a Function (Array Destructuring)
- 49Finding the GCD and LCM (the Euclidean Algorithm)
- 50Formatting Numbers (Digit Alignment and Decimal Precision)
- 51Cleanup Processing with try/catch/finally
- 52Writing Type-Agnostic, General-Purpose Functions
- 53The Basics of Map (an Object for Key-Value Pairs)
- 54Generating Random Numbers
- 55Bitwise Operations (AND, OR, XOR, and Shift Operations)
- 56Using static (Static Class Properties and Methods)
- 57Waiting a Fixed Amount of Time (setTimeout and await)
- 58Watch Out for Floating-Point Rounding Error
- 59Transforming and Flattening at Once with flatMap()
- 60FizzBuzz (the Classic Practice Problem)
- 61Checking Whether a Number Is Prime
- 62Set Operations with Set (Union, Intersection, and Difference)
- 63Converting Number Bases (Binary and Hexadecimal)
- 64Checking That Brackets Match (an Application of Stacks)
- 65Checking for an Anagram
- 66Checking Whether a Year Is a Leap Year
- 67Converting Temperature (Celsius ⇄ Fahrenheit)
- 68Finding the Prime Factorization
- 69[Applied] Build a Simple To-Do List Tool
Working with Arrays
In this lesson you'll learn the basics of using arrays in JavaScript so you can handle multiple pieces of data together efficiently. This is aimed at people searching "JavaScript array usage" or "JavaScript forEach for beginners."
An array is a box that can hold multiple pieces of data together. You create one with [ ], check its size with .length, and process its contents with a for loop or various methods. If you tried to handle 100 names using "one variable per value," you'd need to create 100 separate variables — not realistic at all. An array lets you manage all that data together in a single variable.
The sample code creates an array called fruits, gets its element count with .length, and processes each element one at a time with .forEach(). The pattern .forEach((item, index) => { ... }) is commonly used any time you want to run the same processing on every element of an array — it's a way of thinking you'll also see with .map() and .filter(), which you'll learn about later.
A common beginner stumbling block is that array indexes start at 0. fruits[1] refers to the *second* element, and that gap between "1st = fruits[0]" and everyday counting is a common source of bugs. Also be careful: accessing an index that doesn't exist doesn't throw an error — it just returns undefined.
In real development, data that comes in multiple items — a product list, a list of user comments — is almost always handled as an array. Data received from a database or API is also frequently in array form, so getting comfortable with array operations is basically the foundational fitness of web development.
Arrays also come with methods like .push() to add an element to the end and .pop() to remove the last element. Combining these basic methods lets you easily implement operations you see in real apps all the time, like adding an item to a shopping cart.
When you want to remove an element from an array, or insert one at a specific position, you use .splice() for both. It's a method with slightly involved arguments, but it comes up often whenever you need to edit the middle of an array, so it's worth remembering the name even if you don't master it right away.
💡 Anything passed to console.log() appears in the output below.
