Baseline Widely available
æ¦è¿°lastIndexOf()
æ¹æ³è¿åæ°ç»ä¸ç»å®å
ç´ æå䏿¬¡åºç°çç´¢å¼ï¼å¦æä¸åå¨åè¿å -1ãè¯¥æ¹æ³ä» fromIndex
å¼å§ååæç´¢æ°ç»ã
const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];
console.log(animals.lastIndexOf("Dodo"));
// Expected output: 3
console.log(animals.lastIndexOf("Tiger"));
// Expected output: 1
è¯æ³
lastIndexOf(searchElement)
lastIndexOf(searchElement, fromIndex)
åæ°
searchElement
è¢«æ¥æ¾çå ç´ ã
fromIndex
å¯é
以 0 èµ·å§çç´¢å¼ï¼è¡¨æååæç´¢çèµ·å§ä½ç½®ï¼ä¼è¢«è½¬æ¢ä¸ºæ´æ°ã
fromIndex < 0
ï¼å仿°ç»æ«å°¾å¼å§åæ°è®¡æ°ââå³ä½¿ç¨ fromIndex + array.length
çå¼ãfromIndex < -array.length
ï¼åä¸æç´¢æ°ç»å¹¶è¿å -1
ã仿¦å¿µä¸è®²ï¼ä½ å¯ä»¥æå®æ³è±¡æä»æ°ç»å¼å§ä¹åä¸åå¨çä½ç½®å¼å§ååæç´¢ï¼è¿æ¡è·¯å¾ä¸æ²¡æä»»ä½æ°ç»å
ç´ ï¼å æ¤ searchElement
æ°¸è¿ä¸ä¼è¢«æ¾å°ãfromIndex >= array.length
æè
çç¥äº fromIndex
ï¼åä½¿ç¨ array.length - 1
ï¼è¿ä¼å¯¼è´æç´¢æ´ä¸ªæ°ç»ãå¯ä»¥å°å
¶çè§£ä¸ºä»æ°ç»å°¾é¨ä¹åä¸åå¨çä½ç½®å¼å§ååæç´¢ãæç»ä¼è®¿é®å°æ°ç»æåä¸ä¸ªå
ç´ ï¼å¹¶ç»§ç»ååå¼å§å®é
æç´¢æ°ç»å
ç´ ãæ°ç»ä¸è¯¥å ç´ æå䏿¬¡åºç°çç´¢å¼ï¼å¦æªæ¾å°è¿å -1ã
æè¿°lastIndexOf
使ç¨ä¸¥æ ¼ç¸çï¼ä¸ ===
è¿ç®ç¬¦ä½¿ç¨çç®æ³ç¸åï¼æ¯è¾ searchElement
åæ°ç»ä¸çå
ç´ ãNaN
弿°¸è¿ä¸ä¼è¢«æ¯è¾ä¸ºç¸çï¼å æ¤å½ searchElement
为 NaN
æ¶ lastIndexOf()
æ»æ¯è¿å -1
ã
lastIndexOf()
æ¹æ³ä¼è·³è¿ç¨çæ°ç»ä¸ç空槽ã
lastIndexOf()
æ¹æ³æ¯éç¨çãå®åªææ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ã
ä¸ä¾ä½¿ç¨ lastIndexOf()
å®ä½æ°ç»ä¸çå¼ã
const numbers = [2, 5, 9, 2];
numbers.lastIndexOf(2); // 3
numbers.lastIndexOf(7); // -1
numbers.lastIndexOf(2, 3); // 3
numbers.lastIndexOf(2, 2); // 0
numbers.lastIndexOf(2, -2); // 0
numbers.lastIndexOf(2, -1); // 3
ä½ ä¸è½ç¨ lastIndexOf()
æ¥æç´¢ NaN
ã
const array = [NaN];
array.lastIndexOf(NaN); // -1
æ¥æ¾å
ç´ åºç°çææç´¢å¼
ä¸ä¾ä½¿ç¨ lastIndexOf
æ¥æ¾å°ä¸ä¸ªå
ç´ å¨æ°ç»ä¸ææçç´¢å¼ï¼ä¸æ ï¼ï¼å¹¶å¨æ¾å°å®ä»¬æ¶ç¨ push
å°å®ä»¬æ·»å å°å¦ä¸ä¸ªæ°ç»ä¸ã
const indices = [];
const array = ["a", "b", "a", "c", "a", "d"];
const element = "a";
let idx = array.lastIndexOf(element);
while (idx !== -1) {
indices.push(idx);
idx = idx > 0 ? array.lastIndexOf(element, idx - 1) : -1;
}
console.log(indices);
// [4, 2, 0]
éè¦æ³¨æçæ¯ï¼è¿éå¿
é¡»åç¬å¤ç idx === 0
çæ
åµï¼å ä¸ºå¦æè¯¥å
ç´ æ¯æ°ç»ç第ä¸ä¸ªå
ç´ ï¼åæ 论 fromIndex
åæ°çå¼ä¸ºä½ï¼å®æ»æ¯ä¼è¢«æ¾å°ãè¿ä¸ indexOf
æ¹æ³ä¸åã
ä½ ä¸è½ä½¿ç¨ lastIndexOf()
æ¥æç´¢ç¨çæ°ç»ä¸ç空槽ã
console.log([1, , 3].lastIndexOf(undefined)); // -1
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ lastIndexOf()
lastIndexOf()
æ¹æ³è¯»å this
ç length
屿§ï¼ç¶åè®¿é®æ¯ä¸ªæ´æ°ç´¢å¼ã
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 2,
};
console.log(Array.prototype.lastIndexOf.call(arrayLike, 2));
// 2
console.log(Array.prototype.lastIndexOf.call(arrayLike, 5));
// -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