Baseline Widely available
findIndex()
æ¹æ³è¿åæ°ç»ä¸æ»¡è¶³æä¾çæµè¯å½æ°ç第ä¸ä¸ªå
ç´ çç´¢å¼ãè¥æ²¡ææ¾å°å¯¹åºå
ç´ åè¿å -1ã
å¦è¯·åé
find()
æ¹æ³ï¼å®è¿å满足æµè¯å½æ°ç第ä¸ä¸ªå
ç´ ï¼è䏿¯å®çç´¢å¼ï¼ã
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array1.findIndex(isLargeNumber));
// Expected output: 3
è¯æ³
findIndex(callbackFn)
findIndex(callbackFn, thisArg)
åæ°
callbackFn
为æ°ç»ä¸çæ¯ä¸ªå ç´ æ§è¡ç彿°ãå®åºè¯¥è¿åä¸ä¸ªçå¼ä»¥æç¤ºå·²æ¾å°å¹é å ç´ ï¼å¦åè¿åä¸ä¸ªåå¼ãè¯¥å½æ°è¢«è°ç¨æ¶å°ä¼ å ¥ä»¥ä¸åæ°ï¼
element
æ°ç»ä¸å½åæ£å¨å¤ççå ç´ ã
index
æ£å¨å¤ççå ç´ å¨æ°ç»ä¸çç´¢å¼ã
array
è°ç¨äº findIndex()
çæ°ç»æ¬èº«ã
thisArg
å¯é
æ§è¡ callbackFn
æ¶ç¨ä½ this
çå¼ãåè§è¿ä»£æ¹æ³ã
æ°ç»ä¸ç¬¬ä¸ä¸ªæ»¡è¶³æµè¯æ¡ä»¶çå
ç´ çç´¢å¼ãå¦åè¿å -1
ã
findIndex()
æ¯ä¸ç§è¿ä»£æ¹æ³ã宿ç
§ç´¢å¼ååºä¾æ¬¡éåæ°ç»ä¸çæ¯ä¸ªå
ç´ ï¼å¹¶è°ç¨æä¾ç callbackFn
彿°ï¼ç´å° callbackFn
è¿åä¸ä¸ªçå¼ãç¶å findIndex()
è¿å该å
ç´ çç´¢å¼å¹¶åæ¢éåæ°ç»ã妿 callbackFn
仿ªè¿åä¸ä¸ªçå¼ï¼å findIndex()
è¿å -1
ã
callbackFn
被è°ç¨æ¥å¤çæ°ç»çæ¯ä¸ä¸ªç´¢å¼ï¼èä¸ä»
ä»
æ¯é£äºæå¼çç´¢å¼ãå¨ç¨çæ°ç»ä¸ï¼æªèµå¼çç©ºæ§½ä¸ undefined
表ç°ç¸åã
findIndex()
ä¸ä¼æ¹å被è°ç¨çæ°ç»ï¼ä½æ¯æä¾ç» callbackFn
ç彿°å¯è½ä¼æ¹åå®ãä½éè¦æ³¨æçæ¯ï¼å¨ç¬¬ä¸æ¬¡è°ç¨ callbackFn
ä¹åï¼æ°ç»çé¿åº¦ä¼è¢«ä¿åãå æ¤ï¼
findIndex()
æ¶ï¼callbackFn
ä¸ä¼è®¿é®è¶
åºæ°ç»åå§é¿åº¦çä»»ä½å
ç´ ãcallbackFn
ãcallbackFn
æ¹åäºæ°ç»ä¸å·²åå¨ä½å°æªè¢«è®¿é®çå
ç´ ï¼åä¼ éç» callbackFn
ç该å
ç´ çå¼å°æ¯è¯¥å
ç´ å¨è¢«è®¿é®æ¶çå¼ã被å é¤çå
ç´ è¢«è§ä¸º undefined
ãè¦åï¼ ä¸è¿°ç±»åçå¹¶åä¿®æ¹ç»å¸¸å¯¼è´é¾ä»¥çè§£ç代ç ï¼é常åºé¿å ï¼ç¹æ®æ åµé¤å¤ï¼ã
findIndex()
æ¹æ³æ¯éç¨çãå®åªææ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ã
以ä¸ç¤ºä¾è¿åæ°ç»ä¸ç¬¬ä¸ä¸ªç´ æ°çç´¢å¼ï¼å¦ææ²¡æç´ æ°åè¿å -1
ã
function isPrime(n) {
if (n < 2) {
return false;
}
if (n % 2 === 0) {
return n === 2;
}
for (let factor = 3; factor * factor <= n; factor += 2) {
if (n % factor === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 9, 12].findIndex(isPrime)); // -1ï¼æ²¡ææ¾å°
console.log([4, 6, 7, 9, 12].findIndex(isPrime)); // 2ï¼array[2] æ¯ 7ï¼
夿³¨ï¼ isPrime()
å®ç°ä»
便¼ç¤ºãå¨å®é
åºç¨ä¸ï¼ä¸ºäºé¿å
éå¤è®¡ç®ï¼ä¼ä½¿ç¨å¤§éè®°å¿åçç®æ³ï¼ä¾å¦åæææ¯ç¹å°¼çæ³ã
ä½ å¯ä»¥æç´¢ç¨çæ°ç»ä¸ç undefined
å¹¶æ¥è·å空槽çç´¢å¼ã
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ findIndex()
findIndex()
æ¹æ³è¯»å this
ç length
屿§ï¼å¹¶è®¿é®æ¯ä¸ªæ´æ°ç´¢å¼ã
const arrayLike = {
length: 3,
0: 2,
1: 7.3,
2: 4,
};
console.log(
Array.prototype.findIndex.call(arrayLike, (x) => !Number.isInteger(x)),
); // 1
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4