String.indexOf

indexOf() ๋ฉ”์†Œ๋“œ๋Š” String object ์ค‘์—์„œ fromIndex ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•˜๊ณ  ๋ช…์‹œ๋œ ๊ฐ’์ด ์ฒ˜์Œ ์‹œ์ž‘๋˜๋Š” index๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ -1 ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const sentence = '์‚ผ์ƒ‰๊ณ ์–‘์ด๊ฐ€ ์ตœ๊ณ ์•ผ!';

const searchTerm  = '๊ณ ์–‘์ด';
const indexOfFirst = sentence.indexOf(searchTerm); // 2

Syntax

str.indexOf(searchValue, [, fromIndex])

Parameters

searchValue

์ฐพ๊ธฐ ์œ„ํ•œ ๋ฌธ์ž์—ด

๋งŒ์•ฝ ์ฐพ๊ธฐ ์œ„ํ•œ ๋ฌธ์ž์—ด์ด ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, searchValue๋Š” "undefined"๊ฐ€ ๋œ๋‹ค.๐Ÿ˜ฎ ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ’์€ str์—์„œ ์ฐพ๋Š”๋‹ค.

'undefined'.indexOf() -> 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. searchValue๊ฐ€ ์—†์–ด 'undefined'๋ฅผ ์ฐพ์„ํ…Œ๋‹ˆ๊นŒ

'undefine'.indexOf() -> -1 d๊ฐ€ ๋น ์กŒ๋„ค์š”.

fromIndex (optional)

ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ฐพ๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜์˜ index์ด๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋‹ค. fromIndex ๊ฐ’์ด 0๋ณด๋‹ค ์ž‘๋‹ค๋ฉด 0๋ถ€ํ„ฐ str.length๊นŒ์ง€ ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•œ๋‹ค.

'hello world'.indexOf('o', -5) // fromIndex๊ฐ€ 0๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์€ 4 'hello world'.indexOf('o', 11) // fromIndex๊ฐ€ ์ „์ฒด ๋ฌธ์ž์—ด์˜ length์™€ ๊ฐ™๊ฑฐ๋‚˜ ํฌ๊ธฐ ๋•Œ๋ฌธ์— -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Return value

searchValue๊ฐ€ ์กด์žฌํ•˜๋Š” ์ฒซ๋ฒˆ์งธ index ๊ฐ’์ด๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

searchValue๊ฐ€ ๋นˆ๋ฌธ์ž์—ด('') ์ผ ๊ฒฝ์šฐ ์ด์ƒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๐Ÿ˜ณ fromIndex ๊ฐ’์ด ์—†๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์˜ ์ „์ฒด ๊ธธ์ด๋ณด๋‹ค ์ž‘์€ ๊ฐ’์˜ index๋ผ๋ฉด ๋ฐ˜ํ™˜๊ฐ’์€ fromIndex์™€ ๊ฐ™๋‹ค. ๐Ÿ˜ถ

'hello world'.indexOf(''); // 0 ์ƒ๋žต๋˜๋ฉด default ๊ฐ’์€ 0
'hello world'.indexOf('', 0); // 0
'hello world'.indexOf('', 3); // 3
'hello world'.indexOf('', 8); // 8

๊ทธ๋Ÿฌ๋‚˜ fromIndex๊ฐ’์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜ ํด ๊ฒฝ์šฐ์—” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

'hello world'.indexOf('', 11); // 11
'hello world'.indexOf('', 13); // 11
'hello world'.indexOf('', 22); // 11

์ „์ž์˜ ์˜ˆ๋Š” JS๋Š” ์ง€์ •๋œ ์œ„์น˜์—์„œ ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํ›„์ž์˜ ์˜ˆ์—๋Š” ๋ฌธ์ž์—ด๋์—์„œ ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฐœ๊ฒฌํ•œ๋‹ค. ๋ญ์ง€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ํฌ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋Š”๋ฐ..

Description

๋ฌธ์ž์—ด ๋‚ด์˜ ๋ฌธ์ž๋“ค์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ index๊ฐ€ ๋งค๊ฒจ์ง„๋‹ค.

indexOf() ๋ฉ”์†Œ๋“œ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

Checking occurrences

-1์„ returnํ•˜๋‹ค๋ณด๋‹ˆ true, false๋กœ ๋ช…์‹œํ•˜๊ธฐ๊ฐ€ ์ข€ ๋ถˆํŽธํ•˜๋‹ค. -1์ด falsy๊ฐ’๋„ ์•„๋‹ˆ๋‹ˆ๊นŒ, ๊ทธ๋ฆฌ๊ณ  0์€ ์กด์žฌํ•˜์ง€๋งŒ falsy๊ฐ’์ด false๋ฅผ return ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์กด์žฌ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๐Ÿ‘‡

'๊ณ ์–‘์ด๊ฐ€ ์งฑ์ด์–!'.indexOf('๊ณ ์–‘์ด') !== -1 // true
'๊ณ ์–‘์ด๊ฐ€ ์งฑ์ด์•ผ์•„'.indexOf('๋ฉ๋ญ‰์ด') !== -1 // false

Examples

case-sensitivity

๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•œ๋‹ค.

'Cats are the best'.indexOf('Cats'); // 0
'Cats are the best'.indexOf('cats'); // -1

๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ ์กด์žฌํ•˜๋Š”์ง€ ์„ธ๊ธฐ

์œผ์ž‰ ์ด๋Ÿฐ๊ฒŒ ์žˆ๋„ค ์‚ฌ์‹ค Codewars์—์„œ ์ด๋Ÿฐ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค๋ฉด ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์„œ.. ์ฃผ๋กœ ํ’€์ง€.. ๋ฌธ์ž์—ด์„ ์œ ์ง€ํ•˜๋ฉด์„œ ํ‘ธ๋Š”๊ฑด ์‹ ์„ 

const str = '๊ณ ์–‘์ด ํ•˜๋‚˜ ๊ณ ์–‘์ด ๋‘˜ ๊ณ ์–‘์ด ์…‹ ๊ณ ์–‘์ด ๋„ท ๊ณ ์–‘์ด ๋‹ค์„ฏ';
let count = 0;
let position = str.indexOf('๊ณ ์–‘์ด');

while (position !== -1) {
  count++;
  position = str.indexOf('๊ณ ์–‘์ด', position + 1);
}

count; // 5 ๐Ÿ˜ป

Last updated

Was this helpful?