Array.prototype.lastIndexOf()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
Array ì¸ì¤í´ì¤ì 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-
ë°°ì´ìì ì°¾ì ìì.
fromIndexOptional-
ìë°©í¥ ê²ìì ììíë 0ë¶í° ììíë ì¸ë±ì¤ë¡, ì ìë¡ ë³íë©ëë¤.
- ìì ì¸ë±ì¤ë ë°°ì´ ëììë¶í° ë¤ì ê³ì°ë©ëë¤. ë§ì½
fromIndex < 0ì´ë¼ë©´,fromIndex + array.lengthê° ì¬ì©ë©ëë¤. fromIndex < -array.lengthì¸ ê²½ì°, ë°°ì´ì ê²ìíì§ ìê³-1ì ë°íí©ëë¤. ê°ë ì ì¼ë¡ ë°°ì´ì´ ììë기 ì ì¡´ì¬íì§ ìë ìì¹ìì ììí´ ê·¸ê³³ììë¶í° ê±°ê¾¸ë¡ ê°ë ê²ì´ë¼ê³ ìê°íë©´ ë©ëë¤. ëì¤ì ë°°ì´ ììê° ìì¼ë¯ë¡searchElement를 ì°¾ì ì ììµëë¤.fromIndex >= array.lengthëëfromIndex를 ìëµíë©´,array.length - 1ì´ ì¬ì©ëì´ ì ì²´ ë°°ì´ì ê²ìíê² ë©ëë¤. ê°ë ì ì¼ë¡ ë°°ì´ ë ë머 ì¡´ì¬íì§ ìë ìì¹ìì ììíê³ ê·¸ê³³ììë¶í° ê±°ê¾¸ë¡ ê°ë ê²ì´ë¼ê³ ìê°íë©´ ë©ëë¤. ê²°êµ ë°°ì´ì ì¤ì ë ìì¹ì ëë¬íê³ , ì´ ì§ì ìì ì¤ì ë°°ì´ ìì를 íµí´ ìì ê²ìì ììí©ëë¤.
- ìì ì¸ë±ì¤ë ë°°ì´ ëììë¶í° ë¤ì ê³ì°ë©ëë¤. ë§ì½
ë°í ê°
ë°°ì´ì ìë searchElementì ë§ì§ë§ ì¸ë±ì¤ì
ëë¤. ì°¾ì ì ìì¼ë©´ -1ì
ëë¤.
ì¤ëª
lastIndexOf() ë©ìëë ì격í ëë±ì±(=== ì°ì°ììì ì¬ì©íë ê²ê³¼ ëì¼í ìê³ ë¦¬ì¦)ì ì¬ì©íì¬ searchElement를 ë°°ì´ ììì ë¹êµí©ëë¤. ë ê°ì NaN ê°ì ëì¼í ê²ì¼ë¡ ë¹êµëì§ ìì¼ë¯ë¡ searchElementê° NaNì¸ ê²½ì°, lastIndexOf()ë íì -1ì ë°íí©ëë¤.
ìì
>lastIndexOf() ì¬ì©í기
ë¤ì ìì ììë 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
NaNì 찾기ìí´ lastIndexOf()ì ì¬ì©í ì ììµëë¤.
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() ì¬ì©í기
ë°°ì´ì ë¹ ì¬ë¡¯ì ê²ìí기 ìí´ lastIndexOf()를 ì¬ì©í ì ììµëë¤.
console.log([1, , 3].lastIndexOf(undefined)); // -1
ë°°ì´ì´ ìë ê°ì²´ì lastIndexOf() ì¬ì©í기
lastIndexOf() ë©ìëë thisì length ìì±ì ì½ì ë¤ì í¤ê° lengthë³´ë¤ ìì ìì´ ìë ì ìì¸ ê° ìì±ì ì ê·¼í©ëë¤.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 2,
3: 5, // lengthê° 3 ì´ë¯ë¡ lastIndexOf()ìì 무ìë©ëë¤.
};
console.log(Array.prototype.lastIndexOf.call(arrayLike, 2));
// 2
console.log(Array.prototype.lastIndexOf.call(arrayLike, 5));
// -1
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.lastindexof> |