Borislav Hadzhiev
Last updated: Jul 25, 2022
Check out my new book
The "includes is not a function" error occurs when the includes()
method is
called on a value that is not of type string or array. To solve the error,
convert the value to a string or array before calling the method or make sure to
only call the includes
method on strings or arrays.
Here is an example of how the error occurs.
const str = 1234; // ⛔️ Uncaught TypeError: str.includes is not a function const result = str.includes('3');
We called the includes
method on a number which caused the error. The
includes
method is only supported on
strings
or
arrays.
To solve the error, convert the value to a string or an array before calling the method, or only call the method if the value is of the correct type.
// 👇️ For Strings const num = 1234; const result1 = num.toString().includes('3'); console.log(result1); // 👉️ true // 👇️ For Arrays const set = new Set(['a', 'b', 'c']); const result2 = Array.from(set).includes('b'); console.log(result2); // 👉️ true
We converted the number to a string using the toString()
method before we
called the includes
method.
In the second example, we used the Array.from
method to convert a Set
to an
array before calling the includes
method.
includes
method.const num = 1234; const result1 = typeof num === 'string' ? num.includes('3') : false; console.log(result1); // 👉️ false // 👇️ For Arrays const set = new Set(['a', 'b', 'c']); const result2 = Array.isArray(set) ? set.includes('b') : false; console.log(result2); // 👉️ false
We used the ternary operator, which is very similar to an if/else
statement.
In the first example, we check if the value has a type of string. If it does, we
return the result of calling the includes
method, otherwise we return false
.
In the second example, we check if the value is an array using the
Array.isArray
method.
If the value is an array, we return the result of calling the includes
method,
otherwise we return false
.
console.log
the value you're calling the includes
method on and make sure it's either of type string or array.If you have an object, there is a very good chance you have to access a specific property on the object that has a string or an array value.