Solve - push is not a function Error in JavaScript

avatar

Borislav Hadzhiev

Wed Oct 20 20212 min read

Solve - push is not a function Error #

The "push is not a function" error occurs when the push() method is called on a value that is not an array. To solve the error, convert the value to an array before calling the method or make sure to only call the push() method on valid arrays.

typeerror push is not a function

Here is an example of how the error occurs.

index.js
const arr = {name: 'Tom'}; // โ›”๏ธ Uncaught TypeError: arr.push is not a function arr.push({name: 'James'});

We called the Array.push method on an object, which caused the error.

In this situation, we should place the object in an array, so we are able to push new objects into the array.

index.js
const arr = [{name: 'Tom'}]; arr.push({name: 'James'}); // ๐Ÿ‘‡๏ธ [{name: 'Tom'}, {name: 'James'}] console.log(arr);

If you're getting the error when working with a NodeList or other array-like object, you can convert the array-like object to an array, before calling the push() method.

index.js
const set = new Set(['a', 'b']); const arr = Array.from(set); console.log(arr); // ๐Ÿ‘‰๏ธ ['a', 'b'] arr.push('c'); console.log(arr); // ๐Ÿ‘‰๏ธ ['a', 'b', 'c']

We converted a Set object to an array using the Array.from method, so we can call the push() method on the array.

If the error persists, console.log the value you're calling the push() method on and make sure it's an array.

Here is an example that checks if the value is an array before calling the push method.

index.js
const arr = null; if (Array.isArray(arr)) { arr.push('example'); }

We used the Array.isArray method to check if the value is an array before calling the push method.

If you're working with an object, there's a good chance that you need to access a specific property that stores an array, so you can call the push() method.

index.js
const obj = { numbers: [1, 2], }; obj.numbers.push(3); // ๐Ÿ‘‡๏ธ {numbers: [1, 2, 3]} console.log(obj);

In the example, we access the numbers property, which stores an array and called the push() method on it.

Join my newsletter

I'll send you 1 email a week with links to all of the articles I've written that week

Buy Me A Coffee