Array.prototype.at()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2022ë 3ìâ©.
Array ì¸ì¤í´ì¤ì at() ë©ìëë ì ì«ê°ì ë°ì í´ë¹ ì¸ë±ì¤ì ìë í목ì ë°ííë©°, ììì ìì를 ì¬ì©í ì ììµëë¤. ìì ì ìë ë°°ì´ì ë§ì§ë§ í목ë¶í° ê±°ì¬ë¬ ì
ëë¤.
ìëí´ ë³´ê¸°
const array1 = [5, 12, 8, 130, 44];
let index = 2;
console.log(`An index of ${index} returns ${array1.at(index)}`);
// Expected output: "An index of 2 returns 8"
index = -2;
console.log(`An index of ${index} returns ${array1.at(index)}`);
// Expected output: "An index of -2 returns 130"
구문
at(index)
매ê°ë³ì
index-
ë°íí ë°°ì´ ììì 0ë¶í° ììíë ì¸ë±ì¤ë¡, ì ìë¡ ë³íë©ëë¤. ìì ì¸ë±ì¤ë ë°°ì´ ëë¶í° ê±°ì¬ë¬ ì ëë¤.
index < 0ì¸ ê²½ì°,index + array.lengthë¡ ì ê·¼í©ëë¤.
ë°í ê°
주ì´ì§ ì¸ë±ì¤ì ì¼ì¹íë ë°°ì´ì ììì
ëë¤. index < -array.length ëë index >= array.lengthì¸ ê²½ì°, í´ë¹ ìì±ì ì ê·¼íì§ ìê³ íì undefined를 ë°íí©ëë¤.
ì¤ëª
ì¸ë±ì¤ê° ììê° ìëë¼ë©´, at() ë©ìëë ëê´í¸ í기ë²ê³¼ ëì¼í©ëë¤. ì를 ë¤ì´, array[0]ê³¼ array.at(0)ì 모ë ë°°ì´ì 첫 ë²ì§¸ í목ì ë°íí©ëë¤. ê·¸ë¬ë ë°°ì´ì ëììë¶í° ìì를 ê³ì°í ë Pythonì´ë Rì²ë¼ array[-1]ì ì¬ì©í ì ììµëë¤. ëê´í¸ ìì 모ë ê°ì 문ì ê·¸ëë¡ ë¬¸ìì´ ìì±ì¼ë¡ ì²ë¦¬ëë¯ë¡ array["-1"]ì ì½ê² ë©ëë¤. ì´ë ë°°ì´ ì¸ë±ì¤ê° ìë ì¼ë° 문ìì´ ìì±ì
ëë¤.
ì¼ë°ì ì¸ ë°©ë²ì lengthì ì ê·¼íê³ , ê·¸ë¡ë¶í° ì¸ë±ì¤ë¥¼ ê³ì°íë ê²ì
ëë¤(ì: array[array.length - 1]). at() ë©ìëë ìë ì¸ë±ì±ì íì©íë¯ë¡ ì´ë¥¼ array.at(-1)ë¡ ë¨ì¶í ì ììµëë¤.
at()ì with()를 ê²°í©íë©´ ìì ì¸ë±ì¤ë¥¼ ì¬ì©íì¬ ê°ê° ë°°ì´ì ì½ê³ ì¸ ì ììµëë¤.
at() ë©ìëë ë²ì©ì ì
ëë¤. this ê°ìë length ìì±ê³¼ ì ì í¤ ìì±ë§ ìì ê²ì¼ë¡ ììí©ëë¤.
ìì
>ë°°ì´ì ë ê° ë°í
ìë ìì ë 주ì´ì§ ë°°ì´ìì 맨 ë§ì§ë§ì ìì¹í ê°ì ë°ííë í¨ì를 ì ìí©ëë¤.
// ëª ê°ì§ ììê° ìë ë°°ì´
const cart = ["ì¬ê³¼", "ë°ëë", "ë°°"];
// 주ì´ì§ ë°°ì´ì ë§ì§ë§ ìì를 ë°ííë í¨ì
function returnLast(arr) {
return arr.at(-1);
}
// 'cart' ë°°ì´ìì ë§ì§ë§ ìì를 ê°ì ¸ì´
const item1 = returnLast(cart);
console.log(item1); // 'ë°°'
// 'cart'ë°°ì´ì ìì를 ì¶ê°
cart.push("ì¤ë ì§");
const item2 = returnLast(cart);
console.log(item2); // 'ì¤ë ì§'
ë©ìë ë¹êµ
ìë ìì ììë Arrayì ë¤ìì ë ë²ì§¸ ìì를 ê°ì ¸ì¤ë ìë¡ ë¤ë¥¸ ë°©ë²ì ë¹êµí©ëë¤. 모ë ë°©ë²ì´ ì í¨í긴 íì§ë§ at() ë©ìëì ê°ê²°ì±ê³¼ ê°ë
ì±ì íì¸í ì ììµëë¤.
// ëª ê°ì§ ììê° ìë ë°°ì´
const colors = ["빨ê°", "ì´ë¡", "íë"];
// length ìì± ì¬ì©
const lengthWay = colors[colors.length - 2];
console.log(lengthWay); // 'ì´ë¡'
// slice() ë©ìë ì¬ì©. ë°°ì´ì ë°ííë ê²ì ì ì
const sliceWay = colors.slice(-2, -1);
console.log(sliceWay[0]); // 'ì´ë¡'
// at() ë©ìë ì¬ì©
const atWay = colors.at(-2);
console.log(atWay); // 'ì´ë¡'
ë°°ì´ì´ ìë ê°ì²´ìì at() í¸ì¶
at() ë©ìëë thisì length ìì±ì ì½ê³ ì ê·¼í ì¸ë±ì¤ë¥¼ ê³ì°í©ëë¤.
const arrayLike = {
length: 2,
0: "a",
1: "b",
2: "c", // lengthê° 2ì´ë¯ë¡ at()ì ì´ ê°ì 무ìí©ëë¤.
};
console.log(Array.prototype.at.call(arrayLike, 0)); // "a"
console.log(Array.prototype.at.call(arrayLike, 2)); // undefined
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-array.prototype.at > |