Author -  Sai gowtham

How to solve object.filter is not a function in JavaScript

In this tutorial, we are going to learn about how to solve the TypeError: filter is not a function in JavaScript

When we use a Array.filter() method on a value which is not an data type array we will get the following error in our console.

Example:

const obj=  {
   a: 1,
   b: 2,
   c: 3
};

obj.filter(el => el < 3 );

Output:

"TypeError: obj.filter is not a function

In the example above, we are getting the error because we using the filter() method on a object but filter method only available in arrays.

To solve the error, we need to make sure call the filter() method on a data type array.

Here is an example:

const arr = [2, 3, 4];

const result = arr.filter(el=> el < 3);
console.log(result); //Output -> [2]

Note: The filter() method creates a new with the values that passes the test condition.

If you want to use filter() method on a object data type, you need to convert the object to array format using the Object.values() method then call a filter() method on it.

Here is an example:

const obj=  {
   a: 1,
   b: 2,
   c: 3
};

const values = Object.values(obj);
const result = values.filter(e => e < 3); // [1, 2]

The object.values() method returns the object values in a array format.

If you’re getting the error when working with a HTML collection then convert the HMTL collection to a array before calling filter() method on it.

const elements = document.getElementsByClassName("container");

[...elements].filter(el => el.style.color === "red");

We can also check, if the given value is an type array or not before calling the some() method on it.So that, we can avoid the runtime errors.

var arr = [1, 2, 3];

if(Array.isArray(arr)){
    arr.filter(el => el < 3);
}else{
    console.log("Given data is not an array")
}

Conclusion

The “filter is not a function” error occurs, when we call a filter() method on a value which is not array. To solve the error convert the value to an array before calling the filter() method on it or make sure to use filter() method on valid arrays.

Css Tutorials & Demos

How rotate an image continuously in CSS

In this demo, we are going to learn about how to rotate an image continuously using the css animations.

How to create a Instagram login Page

In this demo, i will show you how to create a instagram login page using html and css.

How to create a pulse animation in CSS

In this demo, i will show you how to create a pulse animation using css.

Creating a snowfall animation using css and JavaScript

In this demo, i will show you how to create a snow fall animation using css and JavaScript.

Top Udemy Courses

JavaScript - The Complete Guide 2023 (Beginner + Advanced)
JavaScript - The Complete Guide 2023 (Beginner + Advanced)
116,648 students enrolled
52 hours of video content
$14.99 FROM UDEMY
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
631,582 students enrolled
49 hours of video content
$24.99 FROM UDEMY
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
203,937 students enrolled
31.5 hours of video content
$14.99 FROM UDEMY