배열 기초
여러 값을 순서대로 담고, 인덱스로 꺼내고 넣습니다.
여러 값을 순서대로 담습니다
변수 하나에는 값 하나가 들어갑니다. 장바구니에 담긴 상품처럼 여러 개를 다루려면 배열(array) 을 사용합니다. 2.3 의 나머지 매개 변수에서 잠깐 본 그것입니다.
대괄호 안에 쉼표로 구분해 적습니다. 자리마다 번호가 붙는데 0부터 셉니다.
만들고 꺼내기
const fruits = ["사과", "바나나", "포도"]; console.log(fruits); console.log(fruits.length); console.log(fruits[0]); console.log(fruits[2]);
length 는 개수이고 번호는 0부터이므로,
마지막 번호는 언제나 length - 1 입니다.
없는 번호를 꺼내면 undefined 가 나옵니다.
넣고 빼기
뒤에 넣는 것이 push, 뒤에서 빼는 것이
pop 입니다. 앞쪽은
unshift 와 shift 입니다.
const cart = []; cart.push("연필"); cart.push("공책"); console.log(cart); const last = cart.pop(); console.log(last); console.log(cart);
pop 은 뺀 값을 돌려주고 배열에서는 지웁니다.
push 는 넣은 뒤의 개수를 돌려줍니다.
들어 있는지 확인하기
const items = ["연필", "공책", "지우개"]; console.log(items.indexOf("공책")); console.log(items.indexOf("가위")); console.log(items.includes("지우개")); console.log(items.includes("가위"));
indexOf 는 번호를 돌려주고 없으면
-1 입니다. 들어 있는지만 알고 싶다면
includes 가 읽기 좋습니다.
const 인데 바뀝니다
const 로 선언한 배열에도 값을 넣고 뺄 수 있습니다.
다시 넣지 못하는 것은 배열 자체이지 그 안의 값이 아니기 때문입니다.
const list = [1, 2]; list.push(3); console.log(list); list = [4];
그래서 배열은 대개 const 로 선언합니다. 내용은
바뀌어도 그 배열을 다른 것으로 바꿔치기하는 일은 드뭅니다.
처음에 자주 걸리는 것
첫 값은 [0] 입니다.
[1] 은 두 번째입니다.
items[items.length] 는 없는 자리라
undefined 입니다. 마지막은
items[items.length - 1] 입니다.
첫 번째 값이면 0 이 나오는데
0 은 거짓입니다(1.7). 있는데 없다고 판정됩니다.
includes 를 사용하거나
!== -1 로 비교하세요.
if (items.indexOf("연필")) { } // 첫 번째면 거짓입니다
if (items.includes("연필")) { } // 이렇게 적습니다
직접 해보기
빈 배열을 만들어 상품 셋을 넣고, 개수와 마지막 상품을 출력하세요.
상품 이름을 받아, 배열에 이미 있으면
"이미 담겨 있습니다" 를 출력하고 없으면 넣는
함수를 만드세요.
이 단원의 정리
- 배열은 여러 값을 순서대로 담습니다. 번호는 0부터 셉니다.
- 마지막 번호는
length - 1입니다. push·pop은 뒤,unshift·shift는 앞입니다.- 들어 있는지는
includes, 자리는indexOf로 봅니다. const배열도 값은 넣고 뺄 수 있습니다. 바꾸지 못하는 것은 배열 자체입니다.