How to solve shift is not a function error in JavaScript
In this tutorial, we are going to learn about how to solve the TypeError: shift is not a function in JavaScript
When we use a Array.shift()
method on a value which is not an data type other than array we will get the following error in our console.
Example:
const arr = {name: "gowtham", place: "india"};
arr.shift();
Output:
"TypeError: arr.shift is not a function
In the example above, we are getting the error because we using the shift()
method on a data type object but shift() method is only available in JavaScript arrays.
To solve the error, we need to make sure to call the shift() method on a data type array.
Here is an example:
const arr = [{name: "gowtham"}, {name: "john"}];
arr.shift();
console.log(arr);
Output:
[{name: "john"}]
Note: The shift()
method removes the first element from an array in JavaScript.This method also changes the length of the array.
If you’re getting this error while using the shift() method in array like object like Nodelist or Set, try to convert it to an array before calling a shift() method.
Here is an example:
const elements = document.getElementsByClassName("container");
[...elements].shift();
We can also check, if the given value is an type array or not before calling the shift()
method on it. So that, we can avoid the runtime errors.
var arr = [1, 2, 3];
if(Array.isArray(arr)){
arr.shift();
}else{
console.log("Given data is not an array")
}
In the above example, the Array.isArray()
method takes the variable as an argument and returns true if the given variable is a valid array otherwise it will return false.
Conclusion
The “shift is not a function” error occurs, when we call a shift() method on a value which is not array. To solve the error convert the value to an array before calling the shift() method on it or make sure to use shift() method on a valid arrays.