Interview question
How do you check if an array includes a value, and what's the difference between includes() and indexOf()? किसी array में value है या नहीं कैसे check करें, includes() और indexOf() में क्या अंतर है?
Answer
| Method | Returns | Detects NaN? |
|---|---|---|
| includes() | Boolean (true/false) | Yes |
| indexOf() | Index number, or -1 | No - cannot find NaN |
const arr = [1, 2, 3, NaN, 5];
// includes - simple boolean check, more readable
console.log(arr.includes(3)); // true
console.log(arr.includes(99)); // false
// indexOf - returns position, -1 if not found
console.log(arr.indexOf(3)); // 2
console.log(arr.indexOf(99)); // -1
// Old pattern before includes() existed - checking with indexOf
if (arr.indexOf(3) !== -1) {
console.log('Found using indexOf');
}
// Modern, more readable equivalent
if (arr.includes(3)) {
console.log('Found using includes');
}
// KEY DIFFERENCE: NaN handling
console.log(arr.indexOf(NaN)); // -1 - indexOf uses === which NaN fails against itself
console.log(arr.includes(NaN)); // true - includes uses SameValueZero algorithm
// includes with a starting search position (2nd argument)
console.log([1, 2, 3, 2].includes(2, 2)); // true - searches from index 2 onward
// String includes() works similarly (unrelated to array, but same concept)
console.log('Hello World'.includes('World')); // true| Method | Return | NaN detect करता है? |
|---|---|---|
| includes() | Boolean | हाँ |
| indexOf() | Index या -1 | नहीं |
const arr = [1, 2, 3, NaN, 5];
// includes - simple boolean check
console.log(arr.includes(3)); // true
console.log(arr.includes(99)); // false
// indexOf - position return करता है
console.log(arr.indexOf(3)); // 2
console.log(arr.indexOf(99)); // -1
// पुराना pattern
if (arr.indexOf(3) !== -1) {
console.log('indexOf से मिला');
}
// Modern तरीका
if (arr.includes(3)) {
console.log('includes से मिला');
}
// KEY DIFFERENCE: NaN handling
console.log(arr.indexOf(NaN)); // -1 - indexOf === use करता है
console.log(arr.includes(NaN)); // true - includes SameValueZero use करता है
// Search शुरू करने की position
console.log([1, 2, 3, 2].includes(2, 2)); // trueWas this answer clear?