KoderSolution Logo
HomeArticlesTutorialsForumAI LabRun Code
KoderSolution Logo

The world’s most advanced technical ecosystem for modern software engineers. Learn, build, and grow with next-generation developer tools and resources.

Engineering Newsletter

Join 100,000+ engineers receiving curated high-signal content weekly.

Platforms

  • Technical Articles
  • Interactive Tutorials
  • AI Coding Lab
  • Developer Forum
  • Developer Tools

Pages

  • About Us
  • Contact Us
  • Privacy Policy
  • Terms of Service
  • Refund Policy
  • Disclaimer
  • Advertisement

Popular Topics

  • PHP
  • Laravel
  • Python
  • React.Js
  • MySQL
© 2026 KoderSolutionAll Rights Reserved
Developed Bymaksudur.dev
⚡

JavaScript

Topic Hub & Articles

JS Introduction

10 min

JS Where To

10 min

JS Output

10 min

Recap Quiz

5 Questions

JS Statements

10 min

JS Syntax

10 min

JS Comments

10 min

Recap Quiz

5 Questions

JS Variables

10 min

JS Let

10 min

JS Const

10 min

Recap Quiz

5 Questions

JS Operators

10 min

JS Arithmetic

10 min

JS Assignment

10 min

Recap Quiz

5 Questions

JS Data Types

10 min

JS Functions

10 min

JS Objects

10 min

Recap Quiz

5 Questions

JS Events

10 min

JS Strings

10 min

JS String Methods

10 min

Recap Quiz

5 Questions

JS String Search

10 min

JS String Templates

10 min

JS Numbers

10 min

Recap Quiz

5 Questions

JS Number Methods

10 min

JS BigInt

10 min

JS Arrays

10 min

Recap Quiz

5 Questions

JS Array Methods

10 min

JS Array Search

10 min

JS Array Sort

10 min

Recap Quiz

5 Questions

JS Array Iteration

10 min

JS Array Const

10 min

JS Dates

10 min

Recap Quiz

5 Questions

JS Date Formats

10 min

JS Date Get Methods

10 min

JS Date Set Methods

10 min

Recap Quiz

5 Questions

JS Math

10 min

JS Random

10 min

JS Booleans

10 min

Recap Quiz

5 Questions

JS Comparisons

10 min

JS If Else

10 min

JS Switch

10 min

Recap Quiz

5 Questions

JS Loop For

10 min

JS Loop For In

10 min

JS Loop For Of

10 min

Recap Quiz

5 Questions

JS Loop While

10 min

JS Break

10 min

JS Iterables

10 min

Recap Quiz

5 Questions

JS Sets

10 min

JS Maps

10 min

JS TypeOf

10 min

Recap Quiz

5 Questions

JS Type Conversion

10 min

JS Destructuring

10 min

JS Bitwise

10 min

Recap Quiz

5 Questions

JS RegExp

10 min

JS Errors

10 min

JS Scope

10 min

Recap Quiz

5 Questions

JS Hoisting

10 min

JS Strict Mode

10 min

JS This Keyword

10 min

Recap Quiz

5 Questions

JS Arrow Function

10 min

JS Classes

10 min

JS Modules

10 min

Recap Quiz

5 Questions

JS JSON

10 min

JS Debugging

10 min

JS Best Practices

10 min

Recap Quiz

5 Questions

JS Common Mistakes

10 min

JS Performance

10 min

JS Reserved Words

10 min

Recap Quiz

5 Questions

DOM Intro

10 min

DOM Methods

10 min

DOM Document

10 min

Recap Quiz

5 Questions

DOM Elements

10 min

DOM HTML

10 min

DOM Forms

10 min

Recap Quiz

5 Questions

DOM CSS

10 min

DOM Animation

10 min

DOM Events

10 min

Recap Quiz

5 Questions

DOM Event Listener

10 min

DOM Navigation

10 min

DOM Nodes

10 min

Recap Quiz

5 Questions

DOM Collections

10 min

DOM Node List

10 min

JS Window

10 min

JS Screen

10 min

JS Location

10 min

Recap Quiz

5 Questions

JS History

10 min

JS Navigator

10 min

JS Popup Alert

10 min

Recap Quiz

5 Questions

JS Timing

10 min

JS Cookies

10 min

JS Callbacks

10 min

JS Asynchronous

10 min

JS Promises

10 min

Recap Quiz

5 Questions

JS Async/Await

10 min

Progress
0%

0 / 92 Lessons

JavaScriptJS Tutorial
Lesson

JS Array Search

10 min reading
Free Course

JavaScript Array Search: Location & Predicate Finders

Searching arrays in JavaScript can be done using index lookups (indexOf, includes) or condition-based predicate functions (find, findIndex, findLastIndex).

Array Search Strategy Selection

flowchart TD
    SearchReq["Search Array"] --> SimpleCheck{"Searching primitive value or complex object?"}
    SimpleCheck -- "Primitive (Value Check)" --> Exists{"Check Existence or Index?"}
    Exists -- "Boolean Existence" --> Inc["includes(val)"]
    Exists -- "Index Position" --> Idx["indexOf(val)"]
    
    SimpleCheck -- "Complex Object / Custom Rule" --> Rule{"Need Item or Index?"}
    Rule -- "Found Item Object" --> Find["find(predicate)"]
    Rule -- "Index Position" --> FindIdx["findIndex(predicate)"]

Array Search Methods Reference

Method Return Type Accepts Callback Predicate? Stops at First Match?
includes(val) boolean No Yes
indexOf(val) number (-1 if missing) No Yes
find(predicate) Item / undefined Yes Yes
findIndex(predicate) number (-1 if missing) Yes Yes
findLastIndex(predicate) number (-1 if missing) Yes (Searches backwards) Yes

Practical Code Example

// Demonstrating Array searching methods

// 1. Primitive Value Lookups
const roles = ["guest", "editor", "admin", "publisher"];
console.log(`Has 'admin' role? ${roles.includes("admin")}`); // true
console.log(`Index of 'editor': ${roles.indexOf("editor")}`); // 1

// 2. Object Array Searching with find() and findIndex()
const users = [
  { id: 101, name: "Alex", active: false },
  { id: 102, name: "Maksudur", active: true },
  { id: 103, name: "Sarah", active: true }
];

// Find first active user object
const firstActiveUser = users.find((user) => user.active);
console.log("First Active User Found:", firstActiveUser); // { id: 102, name: "Maksudur", active: true }

// Find index of user with id 103
const targetIndex = users.findIndex((user) => user.id === 103);
console.log(`Index of User 103: ${targetIndex}`); // 2

// Find last active user (ES2023 findLastIndex)
const lastActiveIndex = users.findLastIndex((user) => user.active);
console.log(`Last Active User Index: ${lastActiveIndex}`); // 2

Best Practices & Gotchas

  • Use find() for Objects: indexOf() uses strict equality (===) and will fail when searching for object references that do not share the same memory pointer. Use find() with a predicate function instead.
  • includes() Handles NaN Correctly: [NaN].includes(NaN) returns true, whereas [NaN].indexOf(NaN) returns -1.
  • Predicate Short-Circuiting: find() and findIndex() stop searching immediately upon finding the first element that satisfies the condition.

Self-Check Challenge

Given an array of products [{id: 1, price: 50}, {id: 2, price: 150}], write a find() call that returns the first product with a price greater than 100.

Save Your Progress

Unlock Your
Full Potential.

Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.

Quick Access With

Enterprise-Grade Security Protocol

Recommended Courses & Books

Try it Yourself

Experiment with the code from this lesson in our interactive playground.

Open Playground

Stuck on this lesson?

Join our community of senior developers.

Ask in Forum