JavaScript Arrays 101

Arrays are one of the most useful and widely used data structures in JavaScript. Whenever we need to store multiple related values—such as a list of users, products, scores, or passengers—we use arrays. Instead of creating many separate variables, arrays allow us to group values together and work with them efficiently.
JavaScript also provides powerful array methods that make it easy to add items, remove items, transform values, filter data, or calculate results. These methods help developers write cleaner and more readable code.
In this guide we will explore important array concepts and methods including:
Creating arrays
Array length behavior
push()andpop()shift()andunshift()map()filter()reduce()(basic explanation)forEach()Array copying and slicing
Searching arrays (
includes,indexOf,find)Checking arrays with
Array.isArray()
Each example includes actual output written beside the code so you can clearly understand how arrays behave.
Creating Arrays in JavaScript
Arrays can be created using square brackets []. This is the most common and recommended way.
const carriage1 = ["Veer", "Ayush", "Ravi"];
console.log(carriage1);
// ["Veer", "Ayush", "Ravi"]
Here the array represents passengers inside a train carriage.
Each element in the array has an index starting from 0.
Index: 0 1 2
Array: ["Veer","Ayush","Ravi"]
Arrays can also be empty.
const emptyCarriage = [];
console.log(emptyCarriage);
// []
Creating Arrays with the Array Constructor
JavaScript also allows arrays to be created using the Array() constructor.
Example:
const threeEmptySeats = Array(3);
console.log(threeEmptySeats.length);
// 3
This creates an array with three empty slots.
Another example:
const passenger = Array("Veer", "Ayush", "Ravi");
console.log(passenger);
// ["Veer", "Ayush", "Ravi"]
Creating Arrays with Array.of()
Array.of() creates an array from the values passed to it.
const singlePassenger = Array.of(3);
console.log(singlePassenger);
// [3]
This avoids confusion that sometimes occurs with Array(3).
Creating Arrays with Array.from()
Array.from() converts iterable values into arrays.
Example converting a string into characters:
const trainCode = Array.from("DUST");
console.log(trainCode);
// ["D", "U", "S", "T"]
Each character becomes an element in the array.
Understanding Array Length Behavior
The length property controls how many elements an array contains.
const tempTrain = ["A", "B", "C", "D", "E"];
tempTrain.length = 3;
console.log(tempTrain);
// ["A", "B", "C"]
When we reduce the length, the extra elements are removed.
Now increase the length again:
tempTrain.length = 5;
console.log(tempTrain);
// ["A", "B", "C", empty × 2]
The array grows but the new slots are empty.
push() – Adding Elements to the End
The push() method adds elements to the end of an array.
let passengers = ["Veer", "Ayush"];
passengers.push("Ravi");
console.log(passengers);
// ["Veer", "Ayush", "Ravi"]
Before:
["Veer","Ayush"]
After push:
["Veer","Ayush","Ravi"]
This method mutates the original array.
pop() – Removing the Last Element
The pop() method removes the last element.
let passengers = ["Veer", "Ayush", "Ravi"];
passengers.pop();
console.log(passengers);
// ["Veer", "Ayush"]
The last passenger "Ravi" is removed.
shift() – Removing the First Element
The shift() method removes the first element from the array.
let passengers = ["Veer", "Ayush", "Ravi"];
passengers.shift();
console.log(passengers);
// ["Ayush", "Ravi"]
The first passenger "Veer" is removed.
unshift() – Adding Elements to the Beginning
unshift() adds elements to the beginning of an array.
let passengers = ["Ayush", "Ravi"];
passengers.unshift("Veer");
console.log(passengers);
// ["Veer", "Ayush", "Ravi"]
splice() – Inserting or Removing Elements
splice() is a powerful mutating method that can remove or insert elements.
let passengers = ["Veer", "Ayush", "Ravi"];
passengers.splice(1, 1);
console.log(passengers);
// ["Veer", "Ravi"]
Explanation:
Start at index
1Remove
1element
Mutating vs Non-Mutating Methods
Some array methods change the original array, while others return a new array.
Mutating methods:
push
pop
shift
unshift
splice
Non-mutating methods:
concat
slice
flat
flatMap
Example using slice() to copy an array:
const wholeTrain = ["A", "B", "C"];
const trainCopy = wholeTrain.slice();
console.log(trainCopy);
// ["A", "B", "C"]
The original array remains unchanged.
Searching Inside Arrays
JavaScript provides several ways to search inside arrays.
indexOf()
const passengers = ["Veer", "Ayush", "Ravi"];
console.log(passengers.indexOf("Ayush"));
// 1
It returns the index of the element.
includes()
console.log(passengers.includes("Ravi"));
// true
This checks whether the value exists in the array.
find()
find() returns the first element that matches a condition.
const numbers = [5, 10, 20];
const result = numbers.find(num => num > 8);
console.log(result);
// 10
forEach() – Executing Code for Each Element
forEach() runs a function for every element.
const passengers = ["Veer", "Ayush", "Ravi"];
passengers.forEach(function(name) {
console.log(name);
});
// Veer
// Ayush
// Ravi
It does not return a new array. It simply performs an action.
map() – Transforming Arrays
map() creates a new array by transforming each element.
const numbers = [1, 2, 3];
const doubled = numbers.map(function(num) {
return num * 2;
});
console.log(doubled);
// [2, 4, 6]
Original array remains unchanged:
console.log(numbers);
// [1, 2, 3]
filter() – Selecting Specific Values
filter() returns elements that match a condition.
const numbers = [5, 12, 8, 20];
const greaterThanTen = numbers.filter(function(num) {
return num > 10;
});
console.log(greaterThanTen);
// [12, 20]
reduce() – Combining Values
reduce() processes all elements and produces a single result.
Example calculating total sum.
const numbers = [5, 10, 15];
const total = numbers.reduce(function(sum, value) {
return sum + value;
}, 0);
console.log(total);
// 30
Step-by-step:
0 + 5 = 5
5 + 10 = 15
15 + 15 = 30
Final result: 30
Checking Whether a Value Is an Array
Sometimes we need to verify whether a value is an array.
console.log(typeof []);
// object
Even though arrays are objects internally, we should use Array.isArray().
console.log(Array.isArray([]));
// true
console.log(Array.isArray("Ravi"));
// false
Important Key Points About Arrays
Here are some important things to remember about JavaScript arrays:
Arrays can be created using
[]orArray().Arrays use 0-based indexing.
Mutating methods modify the original array.
Non-mutating methods return new arrays.
Searching methods include
includes,indexOf, andfind.Use
Array.isArray()to check if a value is an array.
Conclusion
Arrays are essential in JavaScript because they allow programs to manage collections of data efficiently. By using methods such as push, pop, shift, and unshift, we can easily modify arrays. Methods like map, filter, and reduce allow us to process data in powerful and readable ways, while forEach helps execute operations for every element.
Understanding these array methods and behaviors helps developers write cleaner, more efficient JavaScript programs. These concepts appear frequently in real-world applications such as handling API responses, processing lists of users, managing application state, and transforming data for display.