Iterator.prototype.drop()
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.
Experimental: ì´ ê¸°ë¥ì ì¤íì ì¸ ê¸°ë¥ì
ëë¤.
íë¡ëì
íê²½ìì ì¬ì©í기 ì ì ë¸ë¼ì°ì í¸íì± í를 주ì ê¹ê² íì¸íì¸ì.
Iterator ì¸ì¤í´ì¤ì drop() ë©ìëë ì´ ë°ë³µìì ììì ìì 주ì´ì§ ì«ìë§í¼ì ìì를 ì§ëì¹ë ìë¡ì´ ë°ë³µì í¬í¼ë¥¼ ë°íí©ëë¤.
구문
drop(limit)
매ê°ë³ì
limit-
ìí ììì ë¶í° ë²ë¦´ ììì ì.
ë°í ê°
ìë¡ì´ ë°ë³µì í¬í¼ë¥¼ ë°íí©ëë¤. ë°íë ë°ë³µì í¬í¼ì next() ë©ìëê° ì²ì í¸ì¶ë ë, íì¬ ë°ë³µìë ì¦ì limit ê°ì ììë§í¼ ì ì§íê³ , ê·¸ ë¤ì ìì(limit+1ë²ì§¸ ìì)를 ì°ì¶í©ëë¤. ê·¸ í ë°ë³µì í¬í¼ë ë¨ì ììë¤ì íëì© ì°ì¶í©ëë¤. ë§ì½ íì¬ ë°ë³µìê° limitê° ë¯¸ë§ì ìì를 ê°ì§ê³ ìë¤ë©´, ìë¡ì´ ë°ë³µì í¬í¼ë next()ê° ì²ì í¸ì¶ë ë ì¦ì ìë£ë©ëë¤.
ìì¸
RangeError-
ì ìë¡ ë³íì
limitê°NaNëê±°ë ììì¼ ê²½ì°ì ë°ìí©ëë¤.
ìì
>drop() ì¬ì©í기
ë¤ì ìì ë í¼ë³´ëì¹ ìì´ì íì ìì±íë ë°ë³µì를 ë§ë¤ë, ì²ì ë íì ë²ë¦¬ê³ 3ë²ì§¸ íë¶í° ììíë ë°ë³µì를 ìì±í©ëë¤.
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const seq = fibonacci().drop(2);
console.log(seq.next().value); // 2
console.log(seq.next().value); // 3
ì´ë ìëì ëì¼í©ëë¤.
const seq = fibonacci();
seq.next();
seq.next();
for...of 루íì ê°ì´ drop() ì¬ì©í기
drop()ì ë°ë³µì를 ì§ì ì´ëìí¤ì§ ìì ë ê°ì¥ í¸ë¦¬í©ëë¤. ë°ë³µìë ìí ê°ë¥í기 ë문ì, ë°íë í¬í¼ë¥¼ for...of 루íë¡ ë°ë³µí ì ììµëë¤.
for (const n of fibonacci().drop(2)) {
console.log(n);
if (n > 30) {
break;
}
}
// Logs:
// 2
// 3
// 5
// 8
// 13
// 21
// 34
drop()ê³¼ take() ê²°í©í기
ë°ë³µìì ì¼ë¶ë¥¼ ì»ê¸° ìí´ drop()ê³¼ Iterator.prototype.take()ì ê°ì´ ì¬ì©í ì ììµëë¤.
for (const n of fibonacci().drop(2).take(5)) {
// 첫 ë ê°ì ìì를 ë²ë¦¬ê³ , ë¤ì 5ê°ë¥¼ ì·¨í©ëë¤
console.log(n);
}
// ë¡ê·¸:
// 2
// 3
// 5
// 8
// 13
for (const n of fibonacci().take(5).drop(2)) {
// ì²ì 5ê°ë¥¼ ì·¨íê³ , ì²ì 2ê°ë¥¼ íë½ìíµëë¤
console.log(n);
}
// ë¡ê·¸:
// 2
// 3
// 5
drop ê°¯ìì ìë¨ê³¼ íë¨
limitê° ììê±°ë NaNì¼ ê²½ì° RangeErrorê° ë°ìí©ëë¤.
fibonacci().drop(-1); // RangeError: -1 must be positive
fibonacci().drop(undefined); // RangeError: undefined must be positive
limitê° ë°ë³µìê° ìì±í ì ìë ì´ ìì ìë³´ë¤ í° ê²½ì°(ì: Infinity), ë°íë ë°ë³µì í¬í¼ë next()ê° ì²ì í¸ì¶ë ë ì¦ì 모ë ìì를 ë²ë¦¬ê³ ìë£ë©ëë¤. ë§ì½ íì¬ ë°ë³µìê° ë¬´íí ê²½ì°, ë°íë ë°ë³µì í¬í¼ë ì ë ìë£ëì§ ìì ê²ì
ëë¤.
fibonacci().drop(Infinity).next(); // Never ends
new Set([1, 2, 3]).values().drop(Infinity).next(); // { value: undefined, done: true }
new Set([1, 2, 3]).values().drop(4).next(); // { value: undefined, done: true }
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-iterator.prototype.drop> |