How do I empty an array in JavaScript?
Categories:
How to Effectively Empty an Array in JavaScript

Learn the various methods to clear or empty an array in JavaScript, understanding their performance implications and use cases.
Emptying an array is a common task in JavaScript development. Whether you need to reset a list of items, clear user input, or manage data structures, knowing the correct and most efficient way to empty an array is crucial. This article explores several popular methods, discussing their underlying mechanisms, performance characteristics, and when to use each one.
Method 1: Assigning a New Empty Array
The simplest and often most straightforward way to empty an array is to reassign it to a new empty array. This method is highly readable and generally safe, especially when the original array is not referenced by other variables. However, it's important to understand that this only works if there are no other references to the original array. If other variables hold a reference to the original array, they will still point to the old, non-empty array.
let myArray = [1, 2, 3, 4, 5];
let anotherRef = myArray;
myArray = []; // myArray is now empty
console.log(myArray); // Output: []
console.log(anotherRef); // Output: [1, 2, 3, 4, 5] (anotherRef still points to the old array)
Reassigning an array to an empty array.
Method 2: Setting the length
Property to 0
Setting an array's length
property to 0
is a very efficient way to empty an array. This method modifies the array in place, meaning any other variables referencing the same array will also see it as empty. This is a key difference from reassigning to a new array. When length
is set to 0
, all elements from the original array are effectively deleted, and memory can be garbage collected.
let myArray = [1, 2, 3, 4, 5];
let anotherRef = myArray;
myArray.length = 0; // myArray is now empty, and so is anotherRef
console.log(myArray); // Output: []
console.log(anotherRef); // Output: []
Emptying an array by setting its length property to 0.
length
property can sometimes be less intuitive for developers unfamiliar with this JavaScript-specific behavior. Ensure your team understands this approach if used extensively.Method 3: Using splice()
The splice()
method can be used to remove elements from an array. By calling myArray.splice(0, myArray.length)
, you can remove all elements starting from index 0
up to the current length of the array. Like setting length = 0
, this method also modifies the array in place, affecting all references to it.
let myArray = [1, 2, 3, 4, 5];
let anotherRef = myArray;
myArray.splice(0, myArray.length); // myArray is now empty, and so is anotherRef
console.log(myArray); // Output: []
console.log(anotherRef); // Output: []
Emptying an array using the splice() method.
splice()
method is versatile for adding/removing elements at any position. For simply emptying an array, setting length = 0
is generally more performant as splice()
might involve more internal operations.Method 4: Using pop()
in a Loop
Repeatedly calling the pop()
method in a loop until the array is empty is another way to clear an array. This method also modifies the array in place. However, it is generally the least efficient method for emptying an entire array, especially for large arrays, due to the overhead of iterating and calling a method for each element.
let myArray = [1, 2, 3, 4, 5];
let anotherRef = myArray;
while (myArray.length > 0) {
myArray.pop();
}
console.log(myArray); // Output: []
console.log(anotherRef); // Output: []
Emptying an array using a while loop with pop().
pop()
in a loop for emptying large arrays due to its poor performance. It's better suited for removing elements one by one based on specific conditions.flowchart TD A[Start: Array to be emptied] --> B{Are there other references to the array?} B -- Yes --> C{Do you want to clear all references?} C -- Yes --> D["Use myArray.length = 0 or myArray.splice(0, myArray.length)"] C -- No --> E["Use myArray = [] (reassign to new empty array)"] B -- No --> F["Use myArray = [] (reassign to new empty array)"] D --> G[End: Array emptied in place] E --> H[End: Original array still exists for other references] F --> I[End: Array emptied, no other references affected]
Decision flow for choosing an array emptying method.