Iterator.prototype.some()
åºçº¿
2025
æè¿å¯ç¨
èª March 2025 èµ·ï¼æ¤ç¹æ§å·²å¨ææ°æµè§å¨ä¸å¾å°æ¯æãä½å¨è¾æ§çè®¾å¤ææµè§å¨ä¸å¯è½æ æ³è¿è¡ã
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
Iterator å®ä¾ç some() æ¹æ³ä¸ Array.prototype.some() 类似ï¼å®æµè¯è¿ä»£å¨ä¸æ¯å¦è³å°æä¸ä¸ªçæçå
ç´ éè¿æä¾ç彿°å®ç°çæµè¯ãå®è¿åä¸ä¸ªå¸å°å¼ã
è¯æ³
some(callbackFn)
åæ°
callbackFn-
为è¿ä»£å¨ä¸çæ¯ä¸ªå ç´ æ§è¡ç彿°ãå®åºè¯¥è¿åä¸ä¸ªç弿¥è¡¨ç¤ºå ç´ éè¿äºæµè¯ï¼å¦åè¿åä¸ä¸ªåå¼ãè¯¥å½æ°è¢«è°ç¨æ¶å°ä¼ å ¥ä»¥ä¸åæ°ï¼
è¿åå¼
妿åè°å½æ°å¯¹è³å°ä¸ä¸ªå
ç´ è¿åäºçå¼ï¼åè¿å trueãå¦åï¼è¿å falseã
æè¿°
some() è¿ä»£è¯¥è¿ä»£å¨ï¼å¹¶å¯¹æ¯ä¸ªå
ç´ è°ç¨ä¸æ¬¡ callbackFn 彿°ã妿 callbackFn è¿åçå¼ï¼åç«å³è¿å trueãå¦åï¼å®ä¼ä¸ç´è¿ä»£å°è¿ä»£å¨çæ«å°¾ï¼å¹¶è¿å falseã妿 some() è¿å trueï¼åä¼è°ç¨åºå±è¿ä»£å¨ç return() æ¹æ³ä»¥å
³éå®ã
è¿ä»£å¨è¾
婿¹æ³ç¸å¯¹äºæ°ç»æ¹æ³ç主è¦ä¼å¿å¨äºå®ä»¬è½å¤å¤çæ éè¿ä»£å¨ãå¯¹äºæ éè¿ä»£å¨ï¼some() ä¼å¨ç¬¬ä¸æ¬¡æ¾å°ç弿¶ç«å³è¿å trueã妿 callbackFn å§ç»è¿ååå¼ï¼åè¯¥æ¹æ³æ°¸è¿ä¸ä¼è¿åã
示ä¾
>ä½¿ç¨ some()
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().some(isEven)); // true
const isNegative = (x) => x < 0;
const isPositive = (x) => x > 0;
console.log(fibonacci().take(10).some(isPositive)); // false
console.log(fibonacci().some(isNegative)); // æ°¸è¿ä¸ä¼ç»æ
è°ç¨ some() æ»æ¯å
³éåºå±è¿ä»£å¨ï¼å³ä½¿æ¹æ³æåè¿åãè¿ä»£å¨æ°¸è¿ä¸ä¼å¤äºä¸é´ç¶æã
const seq = fibonacci();
console.log(seq.some(isEven)); // true
console.log(seq.next()); // { value: undefined, done: true }
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-iterator.prototype.some> |