This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Iterator.prototype.find()

Baseline 2025
Newly available

Since โจMarch 2025โฉ, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

find() ๋ฉ”์„œ๋“œ๋Š” Iterator ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”์„œ๋“œ๋กœ, Array.prototype.find()์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์ œ๊ณต๋œ ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์ด ์—†๋‹ค๋ฉด, undefined๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ

js
find(callbackFn)

๋งค๊ฐœ๋ณ€์ˆ˜

callbackFn

๋ฐ˜๋ณต์ž์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์‹คํ–‰๋  ํ•จ์ˆ˜. ์ผ์น˜ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ฐธ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

element

์ฒ˜๋ฆฌ ์ค‘์ธ ํ˜„์žฌ ์š”์†Œ.

index

์ฒ˜๋ฆฌ ์ค‘์ธ ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค.

๋ฐ˜ํ™˜ ๊ฐ’

์ œ๊ณต๋œ ํ…Œ์ŠคํŠธ ํ•จ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐ˜๋ณต์ž๊ฐ€ ์ƒ์„ฑํ•œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, undefined์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์„ค๋ช…

find() ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ์”ฉ callbackFn ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์ฐธ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์ฆ‰์‹œ ํ•ด๋‹น ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ณต์ž์˜ ๋๊นŒ์ง€ ์ˆœํšŒํ•˜๊ณ  undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. find()๊ฐ€ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด, ๊ธฐ๋ณธ ๋ฐ˜๋ณต์ž๋Š” return() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋‹ซํž™๋‹ˆ๋‹ค.

๋ฐฐ์—ด ๋ฉ”์„œ๋“œ์— ๋น„ํ•ด ๋ฐ˜๋ณต์ž ํ—ฌํผ์˜ ์ฃผ์š” ์žฅ์ ์€ ๋ฌดํ•œ ๋ฐ˜๋ณต์ž์™€ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ฌดํ•œ ๋ฐ˜๋ณต์ž์—์„œ๋Š” find()๋Š” ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๊ทธ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. callbackFn ์–ธ์ œ๋‚˜ ๊ฑฐ์ง“ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด, ๋ฉ”์„œ๋“œ๋Š” ์ ˆ๋Œ€ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

find() ์‚ฌ์šฉํ•˜๊ธฐ

js
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

const isEven = (x) => x % 2 === 0;
console.log(fibonacci().find(isEven)); // 2

const isNegative = (x) => x < 0;
console.log(fibonacci().take(10).find(isNegative)); // undefined
console.log(fibonacci().find(isNegative)); // Never completes

find() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ญ์ƒ ๊ธฐ๋ณธ ๋ฐ˜๋ณต์ž๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์กฐ๊ธฐ์— ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ž๋Š” ์ ˆ๋Œ€ ์ค‘๊ฐ„ ์ƒํƒœ๋กœ ๋‚จ๊ฒจ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

js
const seq = fibonacci();
console.log(seq.find(isEven)); // 2
console.log(seq.next()); // { value: undefined, done: true }

๋ช…์„ธ์„œ

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-iterator.prototype.find

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ