í¤ë¥¼ ì¬ì©í´ ìë³í ì ìë ê°ì ë´ì 컬ë ì ì ê°ì²´ë¼ë ìë£êµ¬ì¡°ë¥¼ ì´ì©í´ ì ì¥íëë°, ê°ì²´ë§ì¼ë¡ë ë¤ìí ìì ì í ì ììµëë¤.
ê·¸ë°ë° ê°ë°ì ì§ííë¤ ë³´ë©´ 첫 ë²ì§¸ ìì, ë ë²ì§¸ ìì, ì¸ ë²ì§¸ ìì ë±ê³¼ ê°ì´ ììê° ìë 컬ë ì ì´ íìí ëê° ì기곤 í©ëë¤. ì¬ì©ìë 물건, HTML ìì 목ë¡ê°ì´ ì¼ëª©ìì°íê² ìì를 ë§ë¤ì´ ì ë ¬í기 ìí´ì ë§ì´ì£ .
ììê° ìë 컬ë ì ì ë¤ë¤ì¼ í ë ê°ì²´ë¥¼ ì¬ì©íë©´ ììì ê´ë ¨ë ë©ìëê° ìì´ ê·¸ë¤ì§ í¸ë¦¬íì§ ììµëë¤. ê°ì²´ë íìì´ ìì를 ê³ ë ¤íì§ ìê³ ë§ë¤ì´ì§ ìë£êµ¬ì¡°ì´ê¸° ë문ì ê°ì²´ë¥¼ ì´ì©íë©´ ìë¡ì´ íë¡í¼í°ë¥¼ 기존 íë¡í¼í° âì¬ì´ìâ ë¼ì ë£ë ê²ë ë¶ê°ë¥í©ëë¤.
ì´ë´ ë ììê° ìë 컬ë ì
ì ì ì¥í ë ì°ë ìë£êµ¬ì¡°ì¸ ë°°ì´ì ì¬ì©í ì ììµëë¤.
ë°°ì´ ì ì¸
ìë ë 문ë²ì ì¬ì©íë©´ ë¹ ë°°ì´ì ë§ë¤ ì ììµëë¤.
let arr = new Array();
let arr = [];
ëë¶ë¶ ë ë²ì§¸ ë°©ë²ì¼ë¡ ë°°ì´ì ì ì¸íëë°, ì´ë ëê´í¸ ìì ì´ê¸° ìì를 ë£ì´ì£¼ë ê²ë ê°ë¥í©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ìë"];
ê° ë°°ì´ ììì 0ë¶í° ììíë ì«ì(ì¸ë±ì¤)ê° ë§¤ê²¨ì ¸ ììµëë¤. ì´ ì«ìë¤ì ë°°ì´ ë´ ìì를 ëíë ëë¤.
ë°°ì´ ë´ í¹ì ìì를 ì»ê³ ì¶ë¤ë©´ ëê´í¸ ìì ìì를 ëíë´ë ì«ìì¸ ì¸ë±ì¤ë¥¼ ë£ì´ì£¼ë©´ ë©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ìë"];
alert( fruits[0] ); // ì¬ê³¼
alert( fruits[1] ); // ì¤ë ì§
alert( fruits[2] ); // ìë
ê°ì ë°©ë²ì¼ë¡ ìì를 ìì í ì ììµëë¤.
fruits[2] = 'ë°°'; // ë°°ì´ì´ ["ì¬ê³¼", "ì¤ë ì§", "ë°°"]ë¡ ë°ë
ìë¡ì´ ìì를 ë°°ì´ì ì¶ê°íë ê²ë ê°ë¥í©ëë¤.
fruits[3] = 'ë 몬'; // ë°°ì´ì´ ["ì¬ê³¼", "ì¤ë ì§", "ë°°", "ë 몬"]ì¼ë¡ ë°ë
length를 ì¬ì©íë©´ ë°°ì´ì ë´ê¸´ ììê° ëª ê°ì¸ì§ ììë¼ ì ììµëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ìë"];
alert( fruits.length ); // 3
alert를 ì¬ì©í´ ìì ì 체를 ì¶ë ¥íë ê²ë ê°ë¥í©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ìë"];
alert( fruits ); // ì¬ê³¼,ì¤ë ì§,ìë
ë°°ì´ ììì ìë£íì ì ì½ì´ ììµëë¤.
ìì:
// ììì ì¬ë¬ ê°ì§ ìë£íì´ ìì¬ ììµëë¤.
let arr = [ 'ì¬ê³¼', { name: 'ì´ë³´ë¼' }, true, function() { alert('ìë
íì¸ì.'); } ];
// ì¸ë±ì¤ê° 1ì¸ ìì(ê°ì²´)ì name íë¡í¼í°ë¥¼ ì¶ë ¥í©ëë¤.
alert( arr[1].name ); // ì´ë³´ë¼
// ì¸ë±ì¤ê° 3ì¸ ìì(í¨ì)를 ì¤íí©ëë¤.
arr[3](); // ìë
íì¸ì.
ë°°ì´ì ë§ì§ë§ ììë ê°ì²´ì ë§ì°¬ê°ì§ë¡ ì¼íë¡ ëë ì ììµëë¤.
let fruits = [
"ì¬ê³¼",
"ì¤ë ì§",
"ìë",
];
trailing(ê¸¸ê² ëì´ì§ë) ì¼í를 ì¬ì©íë©´ 모ë ì¤ì ìê¹ìê° ì ì¬í´ì§ê¸° ë문ì ìì를 ë£ê±°ë ë¹¼ê¸°ê° ì¬ìì§ëë¤.
pop·pushì shift·unshift
í(queue)ë ë°°ì´ì ì¬ì©í´ ë§ë¤ ì ìë ëíì ì¸ ìë£êµ¬ì¡°ë¡, ë°°ì´ê³¼ ë§ì°¬ê°ì§ë¡ ììê° ìë 컬ë ì ì ì ì¥íë ë° ì¬ì©í©ëë¤. íìì ì¬ì©íë 주ì ì°ì°ì ìëì ê°ìµëë¤.
pushâ 맨 ëì ìì를 ì¶ê°í©ëë¤.shiftâ ì ì¼ ì ìì를 êº¼ë´ ì ê±°í í ë¨ììë ììë¤ì ìì¼ë¡ ë°ì´ì¤ëë¤. ì´ë ê² íë©´ ë ë²ì§¸ ììê° ì²« ë²ì§¸ ììê° ë©ëë¤.
ë°°ì´ì ë ì°ì°ì ê°ë¥ì¼ í´ì£¼ë ë´ì¥ ë©ìë pushì popì´ ììµëë¤.
íë©´ì ìì°¨ì ì¼ë¡ ëì¸ ë©ìì§ë¥¼ ë¹ì¶í´ ëì ìë£ êµ¬ì¡°ë¥¼ ë§ë¤ ë í를 ì¬ì©íë ê²ì²ë¼ íë ì¤ë¬´ìì ìë¹í ì주 ì°ì´ë ìë£êµ¬ì¡°ì ëë¤.
ë°°ì´ì í ì´ì¸ì ì¤í(stack)ì´ë¼ ë¶ë¦¬ë ìë£êµ¬ì¡°ë¥¼ 구íí ëë ì°ì ëë¤.
ì¤íìì ì¬ì©íë ì°ì°ì ìëì ê°ìµëë¤.
pushâ ìì를 ì¤í ëì ì§ì´ë£ìµëë¤.popâ ì¤í ë ìì를 ì¶ì¶í©ëë¤.
ì¤íì ì´ì²ë¼ 'í쪽 ëâì ìì를 ëíê±°ë ëº ì ìê² í´ì£¼ë ìë£êµ¬ì¡°ì ëë¤.
ì¤íì íí ì¹´ë í ë²ê³¼ ë¹êµë©ëë¤. ìì¬ìë ì¹´ë 맨 ìì ìë¡ì´ ì¹´ë를 ëí´ì£¼ê±°ë ë¹¼ë ê²ì²ë¼ ì¤íë 'í쪽 ëâì ìì를 ì§ì´ë£ê±°ë ì¶ì¶ í ì ì기 ë문ì ëë¤.
ì¤íì ì¬ì©íë©´ ê°ì¥ ëì¤ì ì§ì´ë£ì ììê° ë¨¼ì ëìµëë¤. ì´ë° í¹ì§ì ì¤ì¬ì íì ì ì¶(Last-In-First-Out, LIFO)ì´ë¼ê³ ë¶ë¦ ëë¤. ë°ë©´ í를 ì¬ì©íë©´ 먼ì ì§ì´ë£ì ììê° ë¨¼ì ëì¤ê¸° ë문ì íë ì ì ì ì¶(First-In-First-Out, FIFO) ìë£êµ¬ì¡°ë¼ê³ ë¶ë¦ ëë¤.
ìë°ì¤í¬ë¦½í¸ ë°°ì´ì ì¬ì©íë©´ íì ì¤í ë ë¤ë¥¼ ë§ë¤ ì ììµëë¤. ì´ ìë£êµ¬ì¡°ë¤ì ë°°ì´ì ì²ìì´ë ëì ìì를 ëíê±°ë ë¹¼ë ë° ì¬ì©ëì£ .
ì´ë ê² ì²ìì´ë ëì ìì를 ëíê±°ë 빼주ë ì°ì°ì ì ê³µíë ìë£êµ¬ì¡°ë¥¼ ì»´í¨í° ê³¼í ë¶ì¼ìì ë°í(deque, Double Ended Queue)ë¼ê³ ë¶ë¦ ëë¤.
ìëë ë°°ì´ ëì 무ì¸ê°ë¥¼ í´ì£¼ë ë©ìëì ëë¤.
pop-
ë°°ì´ ë ìì를 ì ê±°íê³ , ì ê±°í ìì를 ë°íí©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ë°°"]; alert( fruits.pop() ); // ë°°ì´ìì "ë°°"를 ì ê±°íê³ ì ê±°ë ìì를 ì¼ë¿ì°½ì ëìëë¤. alert( fruits ); // ì¬ê³¼,ì¤ë ì§ push-
ë°°ì´ ëì ìì를 ì¶ê°í©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§"]; fruits.push("ë°°"); alert( fruits ); // ì¬ê³¼,ì¤ë ì§,ë°°fruits.push(...)를 í¸ì¶íë ê²ìfruits[fruits.length] = ...íë ê²ê³¼ ê°ì í¨ê³¼ë¥¼ ë³´ì ëë¤.
ìëë ë°°ì´ ìì 무ì¸ê°ë¥¼ í´ì£¼ë ë©ìëì ëë¤.
shift-
ë°°ì´ ì ìì를 ì ê±°íê³ , ì ê±°í ìì를 ë°íí©ëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ë°°"]; alert( fruits.shift() ); // ë°°ì´ìì "ì¬ê³¼"를 ì ê±°íê³ ì ê±°ë ìì를 ì¼ë¿ì°½ì ëìëë¤. alert( fruits ); // ì¤ë ì§,ë°° unshift-
ë°°ì´ ìì ìì를 ì¶ê°í©ëë¤.
let fruits = ["ì¤ë ì§", "ë°°"]; fruits.unshift('ì¬ê³¼'); alert( fruits ); // ì¬ê³¼,ì¤ë ì§,ë°°
pushì unshiftë ìì ì¬ë¬ ê°ë¥¼ í ë²ì ëí´ì¤ ìë ììµëë¤.
let fruits = ["ì¬ê³¼"];
fruits.push("ì¤ë ì§", "ë°°");
fruits.unshift("íì¸ì í", "ë 몬");
// ["íì¸ì í", "ë 몬", "ì¬ê³¼", "ì¤ë ì§", "ë°°"]
alert( fruits );
ë°°ì´ì ë´ë¶ ëì ì리
ë°°ì´ì í¹ë³í ì¢
ë¥ì ê°ì²´ì
ëë¤. ë°°ì´ arrì ìì를 arr[0]ì²ë¼ ëê´í¸ë¥¼ ì¬ì©í´ ì ê·¼íë ë°©ìì ê°ì²´ 문ë²ìì ììµëë¤. ë¤ë§ ë°°ì´ì í¤ê° ì«ìë¼ë ì ë§ ë¤ë¦
ëë¤.
ì«ìí í¤ë¥¼ ì¬ì©í¨ì¼ë¡ì¨ ë°°ì´ì ê°ì²´ 기본 ê¸°ë¥ ì´ì¸ìë ììê° ìë 컬ë ì
ì ì ì´íê² í´ì£¼ë í¹ë³í ë©ìë를 ì ê³µí©ëë¤. lengthë¼ë íë¡í¼í°ë ì ê³µíì£ . ê·¸ë ì§ë§ ì´ì¨ë ë°°ì´ì 본ì§ì ê°ì²´ì
ëë¤.
ì´ë ê² ë°°ì´ì ìë°ì¤í¬ë¦½í¸ì ì¼ê³± ê°ì§ ìì ìë£íì í´ë¹íì§ ìê³ , ìì ìë£íì´ ìë ê°ì²´íì ìí기 ë문ì ê°ì²´ì²ë¼ ëìí©ëë¤.
ìì를 íë ì´í´ë´ ìë¤. ë°°ì´ì ê°ì²´ì ë§ì°¬ê°ì§ë¡ 참조를 íµí´ ë³µì¬ë©ëë¤.
let fruits = ["ë°ëë"]
let arr = fruits; // 참조를 ë³µì¬í¨(ë ë³ìê° ê°ì ê°ì²´ë¥¼ 참조)
alert( arr === fruits ); // true
arr.push("ë°°"); // 참조를 ì´ì©í´ ë°°ì´ì ìì í©ëë¤.
alert( fruits ); // ë°ëë,ë°° - ììê° ë ê°ê° ëììµëë¤.
ë°°ì´ì ë°°ì´ëµê² ë§ë¤ì´ì£¼ë ê²ì í¹ì ë´ë¶ ííë°©ìì ëë¤. ìë°ì¤í¬ë¦½í¸ ìì§ì ìë쪽 그림ììì²ë¼ ë°°ì´ì ìì를 ì¸ì í ë©ëª¨ë¦¬ ê³µê°ì ì°¨ë¡ë¡ ì ì¥í´ ì°ì° ìë를 ëì ëë¤. ì´ ë°©ë² ì´ì¸ìë ë°°ì´ ê´ë ¨ ì°ì°ì ë ë¹ ë¥´ê² í´ì£¼ë ìµì í 기ë²ì ë¤ìí©ëë¤.
ê·¸ë°ë° ê°ë°ìê° ë°°ì´ì 'ììê° ìë ìë£ì 컬ë ì âì²ë¼ ë¤ë£¨ì§ ìê³ ì¼ë° ê°ì²´ì²ë¼ ë¤ë£¨ë©´ ì´ë° 기ë²ë¤ì´ ì ëë¡ ëìíì§ ììµëë¤.
ìì를 ë¤ì´ë´ ìë¤.
let fruits = []; // ë¹ ë°°ì´ì íë ë§ëëë¤.
fruits[99999] = 5; // ë°°ì´ì 길ì´ë³´ë¤ í¨ì¬ í° ì«ì를 ì¬ì©í´ íë¡í¼í°ë¥¼ ë§ëëë¤.
fruits.age = 25; // ììì ì´ë¦ì ì¬ì©í´ íë¡í¼í°ë¥¼ ë§ëëë¤.
ë°°ì´ì ê°ì²´ì´ë¯ë¡ ììì²ë¼ ìíë íë¡í¼í°ë¥¼ ì¶ê°í´ë 문ì ê° ë°ìíì§ ììµëë¤.
ê·¸ë°ë° ì´ë ê² ì½ë를 ìì±íë©´ ìë°ì¤í¬ë¦½í¸ ìì§ì´ ë°°ì´ì ì¼ë° ê°ì²´ì²ë¼ ë¤ë£¨ê² ëì´ ë°°ì´ì ë¤ë£° ëë§ ì ì©ëë ìµì í 기ë²ì´ ëìíì§ ìì ë°°ì´ í¹ì ì ì´ì ì´ ì¬ë¼ì§ëë¤.
ì못ë ë°©ë²ì ìë ë¤ìê³¼ ê°ìµëë¤.
arr.test = 5ê°ì´ ì«ìê° ìë ê°ì íë¡í¼í° í¤ë¡ ì¬ì©íë ê²½ì°arr[0]ê³¼arr[1000]ë§ ì¶ê°íê³ ê·¸ì¬ì´ì ìë¬´ë° ììë ìë ê²½ì°arr[1000],arr[999]ê°ì´ ìì를 ììì¼ë¡ ì±ì°ë ê²½ì°
ë°°ì´ì ììê° ìë ìë£ë¥¼ ì ì¥íë ì©ëë¡ ë§ë¤ì´ì§ í¹ìí ìë£êµ¬ì¡°ì
ëë¤. ë°°ì´ ë´ì¥ ë©ìëë¤ì ì´ë° ì©ëì ë§ê² ë§ë¤ì´ì¡ì£ . ìë°ì¤í¬ë¦½í¸ ìì§ì ì´ë° í¹ì±ì ê³ ë ¤íì¬ ë°°ì´ì ì ì¤íê² ì¡°ì íê³ , ì²ë¦¬íë¯ë¡ ë°°ì´ì ì¬ì©í ë ì´ë° 목ì ì ë§ê² ì¬ì©í´ 주ì기 ë°ëëë¤. ììì í¤ë¥¼ ì¬ì©í´ì¼ íë¤ë©´ ë°°ì´ë³´ë¨ ì¼ë° ê°ì²´ {}ê° ì í©í ìë£êµ¬ì¡°ì¼ íë¥ ì´ ëìµëë¤.
ì±ë¥
pushì popì ë¹ ë¥´ì§ë§ shiftì unshiftë ë립ëë¤.
ë°°ì´ ìì 무ì¸ê°ë¥¼ í´ì£¼ë ë©ìëê° ë°°ì´ ëì 무ì¸ê°ë¥¼ í´ì£¼ë ë©ìëë³´ë¤ ë린 ì´ì 를 ì¤í íë¦ì ì´í´ë³´ë©´ì ììë´ ìë¤.
fruits.shift(); // ë°°ì´ ë§¨ ìì ìì를 ë¹¼ì¤ëë¤.
shift ë©ìë를 í¸ì¶í ê²ê³¼ ëì¼í í¨ê³¼ë¥¼ ë³´ë ¤ë©´ ì¸ë±ì¤ê° 0ì¸ ìì를 ì ê±°íë ê²ë§ì¼ë¡ ì¶©ë¶íì§ ììµëë¤. ì ê±° ëìì´ ìë ëë¨¸ì§ ììë¤ì ì¸ë±ì¤ë¥¼ ìì í´ ì¤ì¼ íì£ .
shift ì°ì°ì ìë 3ê°ì§ ëìì 모ë ìíí´ì¼ ì´ë¤ì§ëë¤.
- ì¸ë±ì¤ê°
0ì¸ ìì를 ì ê±°í©ëë¤. - 모ë ìì를 ì¼ìª½ì¼ë¡ ì´ëìíµëë¤. ì´ë ì¸ë±ì¤
1ì0,2ë1ë¡ ë³í©ëë¤. lengthíë¡í¼í° ê°ì ê°±ì í©ëë¤.
ê·¸ë°ë° ë°°ì´ì ììê° ë§ì¼ë©´ ììê° ì´ëíë ë° ê±¸ë¦¬ë ìê°ì´ ê¸¸ê³ ë©ëª¨ë¦¬ ê´ë ¨ ì°ì°ë ë§ìì§ëë¤.
unshift를 ì¤ííì ëë ì´ì ì ì¬í ì¼ì´ ì¼ì´ë©ëë¤. ìì를 ë°°ì´ ìì ì¶ê°íë ¤ë©´ ì¼ë¨ 기존 ììë¤ì ì¤ë¥¸ìª½ì¼ë¡ ì´ëìì¼ì¼ íëë°, ì´ë ì¸ë±ì¤ë ë°ê¿ì¤ì¼ í©ëë¤.
ê·¸ë ë¤ë©´ pushë popì ì´ë¨ê¹ì? ì´ ëì ìì ì´ëì ìë°íì§ ììµëë¤. pop ë©ìëë¡ ìì를 ëìì ì ê±°íë ¤ë©´ ë§ì§ë§ ìì를 ì ê±°íê³ length íë¡í¼í°ì ê°ì ì¤ì¬ì£¼ê¸°ë§ íë©´ ëì£ .
pop ë©ìë를 í¸ì¶íë©´ ë¤ìê³¼ ê°ì ëìì´ ì¼ì´ë©ëë¤.
fruits.pop(); // ë°°ì´ ë ìì íë를 ì ê±°í©ëë¤.
pop ë©ìëë ìì를 ì®ê¸°ì§ ìì¼ë¯ë¡ ê° ììë 기존 ì¸ë±ì¤ë¥¼ ê·¸ëë¡ ì ì§í©ëë¤. ë°°ì´ ëì 무ì¸ê°ë¥¼ í´ì£¼ë ë©ìëì ì¤í ìëê° ë¹ ë¥¸ ì´ì ë ë°ë¡ ì¬ê¸°ì ììµëë¤.
push ë©ìë를 ì¸ ëë ì ì¬í ëìì´ ì¼ì´ëë¯ë¡ ìëê° ë¹ ë¦
ëë¤.
ë°ë³µë¬¸
for문ì ë°°ì´ì ìíí ë ì°ë ê°ì¥ ì¤ëë ë°©ë²ì
ëë¤. ìíìì ì¸ë±ì¤ë¥¼ ì¬ì©í©ëë¤.
let arr = ["ì¬ê³¼", "ì¤ë ì§", "ë°°"];
for (let i = 0; i < arr.length; i++) {
alert( arr[i] );
}
ë°°ì´ì ì ì©í ì ìë ë ë¤ë¥¸ ìí 문ë²ì¼ë¡ for..ofê° ììµëë¤.
let fruits = ["ì¬ê³¼", "ì¤ë ì§", "ìë"];
// ë°°ì´ ìì를 ëìì¼ë¡ ë°ë³µ ìì
ì ìíí©ëë¤.
for (let fruit of fruits) {
alert( fruit );
}
for..of를 ì¬ì©íë©´ íì¬ ììì ì¸ë±ì¤ë ì»ì ì ìê³ ê°ë§ ì»ì ì ììµëë¤. ì´ ì ë 기ë¥ì´ë©´ ìíë ê²ì ì¶©ë¶í 구íí ì ìê³ ë¬¸ë²ë 짧기 ë문ì ë°°ì´ì ìì를 ëìì¼ë¡ ë°ë³µ ìì
ì í ë for..of를 ì¬ì©í´ ë³´ì기 ë°ëëë¤.
ë°°ì´ì ê°ì²´íì ìíë¯ë¡ for..inì ì¬ì©íë ê²ë ê°ë¥í©ëë¤.
let arr = ["ì¬ê³¼", "ì¤ë ì§", "ë°°"];
for (let key in arr) {
alert( arr[key] ); // ì¬ê³¼, ì¤ë ì§, ë°°
}
ê·¸ë°ë° for..inì ë¤ìê³¼ ê°ì í¹ì§ì ì§ë기 ë문ì ë°°ì´ì for..inì ì¬ì©íë©´ 문ì ê° ë°ìíë¯ë¡ ëëë¡ ë¤ë¥¸ ë°ë³µë¬¸ì ì¬ì©íì길 ë°ëëë¤.
-
for..inë°ë³µë¬¸ì 모ë íë¡í¼í°ë¥¼ ëìì¼ë¡ ìíí©ëë¤. í¤ê° ì«ìê° ìë íë¡í¼í°ë ìí ëìì í¬í¨ë©ëë¤.ë¸ë¼ì°ì ë 기í í¸ì¤í¸ íê²½ìì ì°ì´ë ê°ì²´ ì¤, ë°°ì´ê³¼ ì ì¬í íí를 ë³´ì´ë âì ì¬ ë°°ì´(array-like)â ê°ì²´ê° ììµëë¤. ì ì¬ ë°°ì´ ê°ì²´ì ë°°ì´ì²ë¼
lengthíë¡í¼í°ë ìê³ ììë§ë¤ ì¸ë±ì¤ë ë¶ì´ ìì£ . ê·¸ë°ë° ì¬ê¸°ì ëíì¬ ì ì¬ ë°°ì´ ê°ì²´ì ë°°ì´ê³¼ë ë¬ë¦¬ í¤ê° ì«ìíì´ ìë íë¡í¼í°ì ë©ìëê° ìì ì ììµëë¤. ì ì¬ ë°°ì´ ê°ì²´ìfor..inì í¨ê» ì¬ì©íë©´ ì´ ëª¨ë ê²ì ëìì¼ë¡ ìíê° ì´ë¤ì§ëë¤. ë°ë¼ì âíì ìëâ íë¡í¼í°ë¤ì´ 문ì 를 ì¼ì¼í¬ ê°ë¥ì±ì´ ìê¹ëë¤. -
for..inë°ë³µë¬¸ì ë°°ì´ì´ ìëë¼ ê°ì²´ì í¨ê» ì¬ì©í ë ìµì íëì´ ìì´ì ë°°ì´ì ì¬ì©íë©´ ê°ì²´ì ì¬ì©íë ê² ëë¹ 10~100ë°° ì ë ë립ëë¤.for..inë°ë³µë¬¸ì ìëê° ëì²´ë¡ ë¹ ë¥¸ í¸ì´ê¸° ë문ì ë³ëª© ì§ì ììë§ ë¬¸ì ê° ë긴 í©ëë¤ë§,for..inë°ë³µë¬¸ì ì¬ì©í ë ì´ë° ì°¨ì´ë¥¼ ìê³ ì ì í ê³³ì ì¬ì©íì길 ë°ëëë¤.
ê·¸ë¬ë ë°°ì´ì ëëë¡ for..in를 ì°ì§ ë§ì¸ì.
âlengthâ íë¡í¼í°
ë°°ì´ì 무ì¸ê° ì¡°ìì ê°íë©´ length íë¡í¼í°ê° ìëì¼ë¡ ê°±ì ë©ëë¤. length íë¡í¼í°ë ë°°ì´ ë´ ììì ê°ìê° ìëë¼ ê°ì¥ í° ì¸ë±ì¤ì 1ì ëí ê°ì
ëë¤.
ë°ë¼ì ë°°ì´ì ììê° íë ìê³ , ì´ ììì ì¸ë±ì¤ê° ì주 í° ì ìë¼ë©´ ë°°ì´ì length íë¡í¼í°ë ì주 커ì§ëë¤.
let fruits = [];
fruits[123] = "ì¬ê³¼";
alert( fruits.length ); // 124
ë°°ì´ì ì´ë ê² ì¬ì©íì§ ìëë¡ í©ìë¤.
length íë¡í¼í°ì ë ë¤ë¥¸ ë
í¹í í¹ì§ ì¤ íëë ì°ê¸°ê° ê°ë¥íë¤ë ì ì
ëë¤.
lengthì ê°ì ìëì¼ë¡ ì¦ê°ìí¤ë©´ ì무 ì¼ë ì¼ì´ëì§ ììµëë¤. ê·¸ë°ë° ê°ì ê°ììí¤ë©´ ë°°ì´ì´ ì립ëë¤. ì§§ìì§ ë°°ì´ì ë¤ì ëë릴 ì ììµëë¤. ìì를 íµí´ ì´ë¥¼ ì´í´ë´
ìë¤.
let arr = [1, 2, 3, 4, 5];
arr.length = 2; // ìì 2ê°ë§ ë¨ê¸°ê³ ìë¼ë´
ìë¤.
alert( arr ); // [1, 2]
arr.length = 5; // 본ë 길ì´ë¡ ëëë ¤ ë´
ìë¤.
alert( arr[3] ); // undefined: ìì ë 기존 ììë¤ì´ 복구ëì§ ììµëë¤.
ì´ë° í¹ì§ì ì´ì©íë©´ arr.length = 0;ì ì¬ì©í´ ì주 ê°ë¨íê² ë°°ì´ì ë¹ì¸ ì ììµëë¤.
new Array()
ìììë ì ì ì¸ê¸íì§ë§ new Array() 문ë²ì ì¬ì©í´ë ë°°ì´ì ë§ë¤ ì ììµëë¤.
let arr = new Array("ì¬ê³¼", "ë°°", "기í");
ëê´í¸ []를 ì¬ì©íë©´ ë ì§§ì 문ë²ì¼ë¡ ë°°ì´ì ë§ë¤ ì ì기 ë문ì new Array()ë ì ì¬ì©ëì§ ìë í¸ì
ëë¤. new Array()ì ë¤ë£¨ê¸° ê¹ë¤ë¡ì´ 기ë¥ë ìì´ì ëì±ë ê·¸ë ìµëë¤.
ì«ìí ì¸ì íë를 ë£ì´ì new Array를 í¸ì¶íë©´ ë°°ì´ì´ ë§ë¤ì´ì§ëë°, ì´ ë°°ì´ì ììê° ìë ë°ë©´ 길ì´ë ì¸ìì ê°ìì§ëë¤.
ìì를 íµí´ new Array()ì ì´ë° í¹ì§ì´ ì´ë»ê² ì¤ì를 ì ë°í ì ìëì§ ììë´
ìë¤.
let arr = new Array(2); // ì´ë ê² íë©´ ë°°ì´ [2]ê° ë§ë¤ì´ì§ê¹ì?
alert( arr[0] ); // undefinedê° ì¶ë ¥ë©ëë¤. ììê° íëë ìë ë°°ì´ì´ ë§ë¤ì´ì¡ë¤ì.
alert( arr.length ); // 길ì´ë 2ì
ëë¤.
ì ìììì íì¸í´ 본 ê²ì²ë¼ new Array(number)를 ì´ì©í´ ë§ë ë°°ì´ì ììë 모ë undefined ì
ëë¤.
ì´ë° ë»ë°ì ìí©ì ë§ì£¼ì¹ì§ ì기 ìí´ new Arrayì 기ë¥ì ì ìì§ ìë í ëë¶ë¶ì ê°ë°ìê° ëê´í¸ë¥¼ ì¨ì ë°°ì´ì ë§ëëë¤.
ë¤ì°¨ì ë°°ì´
ë°°ì´ ìì ë°°ì´ì ììê° ë ì ììµëë¤. ì´ë° ë°°ì´ì ê°ë¦¬ì¼ ë¤ì°¨ì ë°°ì´(multidimensional array)ì´ë¼ ë¶ë¦ ëë¤. ë¤ì°¨ì ë°°ì´ì íë ¬ì ì ì¥íë ì©ëë¡ ì°ì ëë¤.
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // 5, ì¤ì¬ì ìë ìì
toString
ë°°ì´ì toString ë©ìëê° êµ¬íëì´ ìì´ ì´ë¥¼ í¸ì¶íë©´ ìì를 ì¼íë¡ êµ¬ë¶í 문ìì´ì´ ë°íë©ëë¤.
ìì:
let arr = [1, 2, 3];
alert( arr ); // 1,2,3
alert( String(arr) === '1,2,3' ); // true
ìë ìì를 ì¤íí´ ë´ ìë¤.
alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"
ë°°ì´ì Symbol.toPrimitiveë valueOf ë©ìëê° ììµëë¤. ë°ë¼ì ì ìììì 문ìì´ë¡ì í ë³íì´ ì¼ì´ë []ë ë¹ ë¬¸ìì´, [1]ì 문ìì´ "1", [1,2]ë 문ìì´ "1,2"ë¡ ë³íë©ëë¤.
ì´í ë§ì
ì°ì°ì "+"ë í¼ì°ì°ì ì¤ íëê° ë¬¸ìì´ì¸ ê²½ì° ëë¨¸ì§ í¼ì°ì°ìë 문ìì´ë¡ ë³íí©ëë¤. ë°ë¼ì ì ììë ìë ììì ëì¼íê² ëìí©ëë¤.
alert( "" + 1 ); // "1"
alert( "1" + 1 ); // "11"
alert( "1,2" + 1 ); // "1,21"
ìì½
ë°°ì´ì í¹ìí ííì ê°ì²´ë¡, ììê° ìë ìë£ë¥¼ ì ì¥íê³ ê´ë¦¬íë ì©ëì ìµì íë ìë£êµ¬ì¡°ì ëë¤.
-
ì ì¸ ë°©ë²:
// ëê´í¸ (ê°ì¥ ë§ì´ ì°ì´ë ë°©ë²ì) let arr = [item1, item2...]; // new Array (ì ì°ì´ì§ ìì) let arr = new Array(item1, item2...);new Array(number)ì í¸ì¶íë©´ 길ì´ê°numberì¸ ë°°ì´ì´ ë§ë¤ì´ì§ëë°, ì´ ë ììë ë¹ì´ììµëë¤. -
lengthíë¡í¼í°ë ë°°ì´ì 길ì´ë¥¼ ëíë´ì¤ëë¤. ì ííë ì«ìí ì¸ë±ì¤ ì¤ ê°ì¥ í° ê°ì 1ì ëí ê°ì ëë¤. ë°°ì´ ë©ìëëlengthíë¡í¼í°ë¥¼ ìëì¼ë¡ ì¡°ì í´ì¤ëë¤. -
lengthê°ì ìëì¼ë¡ ì¤ì´ë©´ ë°°ì´ ëì´ ì립ëë¤.
ë¤ì ì°ì°ì ì¬ì©íë©´ ë°°ì´ì ë°íì²ë¼ ì¬ì©í ì ììµëë¤.
push(...items)âitems를 ë°°ì´ ëì ëí´ì¤ëë¤.pop()â ë°°ì´ ë ìì를 ì ê±°íê³ , ì ê±°í ìì를 ë°íí©ëë¤.shift()â ë°°ì´ ì²ì ìì를 ì ê±°íê³ , ì ê±°í ìì를 ë°íí©ëë¤.unshift(...items)âitems를 ë°°ì´ ì²ìì ëí´ì¤ëë¤.
ìë ë°©ë²ì ì¬ì©íë©´ 모ë ìì를 ëìì¼ë¡ ë°ë³µ ìì ì í ì ììµëë¤.
for (let i=0; i<arr.length; i++)â ê°ì¥ ë¹ ë¥¸ ë°©ë²ì´ê³ ì¤ëë ë¸ë¼ì°ì ìë í¸íë©ëë¤.for (let item of arr)â ë°°ì´ ìììë§ ì¬ì©ëë 모ëí 문ë²ì ëë¤.for (let i in arr)â ë°°ì´ì ì ë ì¬ì©íì§ ë§ì¸ì.
ë°°ì´ê³¼ ë©ìë ì±í°ìì ë°°ì´ì ìì를 ëíê±°ë 빼기, ìíë ìì를 ì¶ì¶í기, ë°°ì´ ì ë ¬í기 ë±ê³¼ ê´ë ¨ë ë¤ìí ë©ìë를 íìµí ìì ì ëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.