What is JavaScript includes() function

The includes() method determines whether an array or string contains a specific element or substring, returning true or false.
1. Array includes()
Checks if an array contains a specific element.
Syntax
javascript
array.includes(searchElement, fromIndex);JavaScriptParameters
- searchElement (required): The element to search for
- fromIndex (optional): The index to start searching from (default: 0)
Examples
Example 1: Basic Usage
javascript
const fruits = ["Apple", "Banana", "Orange"];
console.log(fruits.includes("Banana")); // true
console.log(fruits.includes("Mango")); // falseJavaScriptExample 2: Case Sensitive
javascript
const colors = ["Red", "Green", "Blue"];
console.log(colors.includes("Red")); // true
console.log(colors.includes("red")); // false (case sensitive)JavaScriptExample 3: With fromIndex Parameter
javascript
const numbers = [1, 2, 3, 4, 5, 3, 6];
console.log(numbers.includes(3)); // true
console.log(numbers.includes(3, 3)); // true
(search from index 3)
console.log(numbers.includes(3, 5)); // false
(no 3 after index 5)JavaScriptExample 4: With Different Data Types
javascript
const mixed = [1, "hello", true, null, undefined, NaN];
console.log(mixed.includes(1)); // true
console.log(mixed.includes("hello")); // true
console.log(mixed.includes(true)); // true
console.log(mixed.includes(null)); // true
console.log(mixed.includes(undefined)); // true
console.log(mixed.includes(NaN)); // true (special case) JavaScriptExample 5: Array of Objects
javascript
const users = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 3, name: "Charlie" }
];
// includes() checks for reference, not value
const user = { id: 1, name: "Alice" };
console.log(users.includes(user)); // false (different object reference)
// This works because same reference
const alice = users[0];
console.log(users.includes(alice)); // true JavaScriptExample 6: Check Multiple Values
javascript
const allowedRoles = ["admin", "user", "moderator"];
const userRole = "user";
console.log(allowedRoles.includes(userRole)); // true
// Check if user has ANY of these roles
const userRoles = ["editor", "viewer"];
const hasPermission = userRoles.some(role => allowedRoles.includes(role));
console.log(hasPermission); // false JavaScript2. String includes()
Checks if a string contains a specific substring.
Syntax
javascript
string.includes(searchString, position);JavaScriptParameters
- searchString (required): The substring to search for
- position (optional): The position to start searching from (default: 0)
Examples
Example 1: Basic Usage
javascript
const message = "Hello World";
console.log(message.includes("World")); // true
console.log(message.includes("world")); // false (case sensitive)
console.log(message.includes("Hello")); // true
console.log(message.includes("xyz")); // false JavaScriptExample 2: With Position Parameter
javascript
const text = "JavaScript is awesome";
console.log(text.includes("is")); // true
console.log(text.includes("is", 5)); // true (search from index 5)
console.log(text.includes("is", 15)); // false (no "is" after index 15) JavaScriptExample 3: Email and URL Validation
javascript
const email = "user@example.com";
console.log(email.includes("@")); // true
const url = "https://www.google.com";
console.log(url.includes("https://")); // true
console.log(url.includes("google")); // true JavaScriptExample 4: Search in Sentence
javascript
const sentence = "The quick brown fox jumps over the lazy dog";
console.log(sentence.includes("quick")); // true
console.log(sentence.includes("fox")); // true
console.log(sentence.includes("cat")); // false JavaScriptExample 5: Case Insensitive Search
javascript
const text = "JavaScript";
// includes() is case sensitive, so convert both to same case
console.log(text.toLowerCase().includes("javascript")); // true
console.log(text.toUpperCase().includes("JAVASCRIPT")); // true JavaScriptPractical Real-World Examples
Example 1: Form Validation
javascript
function isValidCountry(country) {
const allowedCountries = ["USA", "Canada", "Mexico", "UK", "Germany"];
return allowedCountries.includes(country);
}
console.log(isValidCountry("USA")); // true
console.log(isValidCountry("France")); // false JavaScriptExample 2: User Permissions
javascript
const user = {
name: "Alice",
permissions: ["read", "write", "delete"]
};
function canPerformAction(user, action) {
return user.permissions.includes(action);
}
console.log(canPerformAction(user, "write")); // true
console.log(canPerformAction(user, "admin")); // false JavaScriptExample 3: Search Filter
javascript
const products = [
{ id: 1, name: "Laptop", category: "Electronics" },
{ id: 2, name: "Desk", category: "Furniture" },
{ id: 3, name: "Monitor", category: "Electronics" }
];
function searchProducts(products, keyword) {
return products.filter(product =>
product.name.toLowerCase().includes(keyword.toLowerCase()) ||
product.category.toLowerCase().includes(keyword.toLowerCase())
);
}
console.log(searchProducts(products, "electronics"));
// Returns: [Laptop, Monitor]JavaScriptExample 4: Check Banned Words
javascript
function checkContent(text) {
const bannedWords = ["spam", "hate", "violence"];
const lowerText = text.toLowerCase();
for (let word of bannedWords) {
if (lowerText.includes(word)) {
return `Content contains banned word: "${word}"`;
}
}
return "Content is clean";
}
console.log(checkContent("This is great content")); // Content is clean
console.log(checkContent("Stop spam now")); // Content contains banned word: "spam"JavaScriptExample 5: Check File Extensions
javascript
function isValidFileType(filename) {
const allowedExtensions = [".jpg", ".png", ".pdf", ".doc"];
return allowedExtensions.some(ext => filename.toLowerCase().includes(ext));
}
console.log(isValidFileType("image.jpg")); // true
console.log(isValidFileType("document.pdf")); // true
console.log(isValidFileType("video.mp4")); // false JavaScriptExample 6: Remove Items Based on Condition
javascript
const todoList = ["Buy milk", "Clean room", "Buy bread", "Code"];
// Filter out items containing "Buy"
const remainingTodos = todoList.filter(task => !task.includes("Buy"));
console.log(remainingTodos); // ["Clean room", "Code"] JavaScriptComparison with Other Methods
Array: includes() vs indexOf() vs find()
javascript
const arr = [1, 2, 3, NaN];
// includes() - returns boolean
console.log(arr.includes(2)); // true
console.log(arr.includes(NaN)); // true
// indexOf() - returns index or -1
console.log(arr.indexOf(2)); // 1
console.log(arr.indexOf(NaN)); // -1 (can't find NaN)
// find() - returns element or undefined
console.log(arr.find(x => x === 2)); // 2
console.log(arr.find(x => x === 4)); // undefined JavaScriptString: includes() vs indexOf() vs search()
javascript
const text = "JavaScript";
// includes() - returns boolean
console.log(text.includes("Script")); // true
// indexOf() - returns index or -1
console.log(text.indexOf("Script")); // 4
// search() - returns index or -1 (supports regex)
console.log(text.search(/script/i)); // 4 JavaScriptKey Differences from Other Methods
| Method | Returns | Works With | Special Cases |
| includes() | Boolean | Arrays, Strings | Handles NaN correctly |
| indexOf() | Index or -1 | Arrays, Strings | NaN returns -1 |
| find() | Element or undefined | Arrays only | Uses callback function |
| some() | Boolean | Arrays only | Uses callback function |
| startsWith() | Boolean | Strings only | Checks beginning |
| endsWith() | Boolean | Strings only | Checks end |
Edge Cases
NaN Handling
javascript
// includes() handles NaN correctly
const arr = [NaN];
console.log(arr.includes(NaN)); // true
console.log(arr.indexOf(NaN)); // -1 (doesn't find NaN)
console.log(NaN === NaN); // false (but includes finds it) JavaScriptNegative Index
javascript
const arr = [1, 2, 3];
console.log(arr.includes(2, -2)); // true (searches from index 1)
console.log(arr.includes(1, -2)); // false (no element 1 from index 1) JavaScriptEmpty Strings
javascript
const words = ["hello", "", "world"];
console.log(words.includes("")); // true
const text = "hello world";
console.log(text.includes("")); // true (empty string is in every string) JavaScriptSparse Arrays
javascript
const sparse = [1, , 3];
console.log(sparse.includes(undefined)); // false (empty slot ≠ undefined)JavaScriptComplete Real-World Example: Authentication
javascript
class User {
constructor(name, roles) {
this.name = name;
this.roles = roles;
}
hasRole(role) {
return this.roles.includes(role);
}
hasAnyRole(...roles) {
return roles.some(role => this.roles.includes(role));
}
hasAllRoles(...roles) {
return roles.every(role => this.roles.includes(role));
}
}
const user = new User("Alice", ["user", "editor", "moderator"]);
console.log(user.hasRole("editor")); // true
console.log(user.hasRole("admin")); // false
console.log(user.hasAnyRole("admin", "editor")); // true
console.log(user.hasAllRoles("user", "editor")); // true JavaScriptThe includes() method is simple, efficient, and a must-have in your JavaScript toolkit for checking membership!


