Remove Elements From an Array Until a Callback Returns True in JavaScript

Last Updated : 24 Aug, 2026

In JavaScript, elements can be removed from the beginning of an array until a specified condition becomes true.

  • A callback function can be used to determine when the removal should stop.
  • Elements are removed sequentially from the beginning of the array.
  • The process stops when the callback function returns true.
  • Different array methods can be used depending on whether the original array should be modified.

Approach 1: Using for Loop

In this approach, a for loop is used to check each element against a condition. The shift() method removes elements from the beginning of the array until the condition becomes false.

Example: Removes elements that are less than 6 from the beginning of an array.

JavaScript
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let removedArr = [];

for (let i = 0; i < arr.length; i++) {
    if (arr[i] < 6) {
        removedArr.push(arr.shift());
    } else {
        break;
    }
}

console.log(removedArr);

Output
[ 1, 2, 3 ]

Approach 2: Using slice() Method

In this approach, slice() is used to create a new array containing the elements before the first element that satisfies the stopping condition.

Example: Retrieves the elements before the first value greater than or equal to 5.

JavaScript
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];

let limiter = 5;

function retrieveRemoved(array, limiter) {
    for (let i = 0; i < array.length; i++) {
        if (array[i] >= limiter) {
            return array.slice(0, i);
        }
    }

    return array.slice();
}

let removed = retrieveRemoved(array, limiter);

console.log("The removed elements: " + removed);

Output
The removed elements: 1,2,2,3,4

Approach 3: Using Another Array

In this approach, a separate array is used to store elements that satisfy the removal condition. The loop stops when an element no longer satisfies the condition.

Example: Stores all elements less than 5 in another array.

JavaScript
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];

let limiter = 5;

function retrieveRemoved(array, limiter) {
    let removed = [];

    for (let i = 0; i < array.length; i++) {
        if (array[i] < limiter) {
            removed.push(array[i]);
        } else {
            break;
        }
    }

    return removed;
}

let removed = retrieveRemoved(array, limiter);

console.log("The removed elements are: " + removed);

Output
The removed elements are: 1,2,2,3,4

Approach 4: Using filter() Method

The filter() method can be used to create a new array containing elements that satisfy a specified condition. However, unlike the previous approaches, filter() checks all elements and does not stop when the callback first returns false.

Example: Retrieves all elements less than 5.

JavaScript
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];

let limiter = 5;

function retrieveRemoved(element) {
    return element < limiter;
}

let removed = array.filter(retrieveRemoved);

console.log("The removed elements are: " + removed);

Output
The removed elements are: 1,2,2,3,4

Approach 5: Using splice() Method

The splice() method can be used when the elements need to be removed from the original array. It removes each matching element and stores it in a separate array until the stopping condition is reached.

Example: Removes elements less than 5 from the original array.

JavaScript
let array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];

let limiter = 5;

function retrieveRemoved(array, limiter) {
    let removed = [];

    while (array.length > 0 && array[0] < limiter) {
        removed.push(array.splice(0, 1)[0]);
    }

    return removed;
}

let removed = retrieveRemoved(array, limiter);

console.log("The removed elements are: " + removed);
console.log("The modified array is: " + array);

Output
The removed elements are: 1,2,2,3,4
The modified array is: 5,6,6,7,8,8,8
Comment