배열

배열

배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. 아래의 예제를 보자. 변수 name에는 문자 egoing이 할당되었다. 이제부터 name을 호출하면 문자 egoing을 사용할 수 있다.

var name = 'egoing'
alert(name);

배열의 생성

대괄호([])는 배열을 만드는 기호다. 대괄호 안에 데이터를 콤마(,)로 구분해서 나열하면 배열이 된다.

var member = ['egoing', 'k8805', 'sorialgi']

alert(member[0]);
alert(member[1]);
alert(member[2]);

/*
egoing
k8805
sorialgi
*/

즉 배열에 담겨있는 값을 가져올 때는 대괄호 안에 숫자를 넣는다. 이 숫자를 색인(index)라고 부르고 0부터 시작한다. 즉 첫번째 원소(egoing)를 가져오려면 대괄호 안에 0을 넣어주어야 한다는 것이다. 두번째는 1, 세번째는 2를 입력한다. 이 값을 이용해서 배열에 저정된 값을 가져올 수 있다.

배열이 없다면

// 배열이 없을시 코드 나

function get_member1(){
    return 'egoing';
}
document.write(get_member1());
 
function get_member2(){
    return 'k8805';
}
document.write(get_member2());
 
 
function get_member3(){
    return 'sorialgi'
}
document.write(get_member3());
// 배열 사용할 경 우 (가독성이 좋음)

function get_members(){
    return ['egoing', 'k8805', 'sorialgi'];
}
var members = get_members();
document.write(members[0]);
document.write(members[1]);
document.write(members[2]);

배열의 사용

function get_members(){
    return ['egoing', 'k8805', 'sorialgi'];
}
members = get_members();
// members.length는 배열에 담긴 값의 숫자를 알려준다. 
for(i = 0; i < members.length; i++){
    // members[i].toUpperCase()는 members[i]에 담긴 문자를 대문자로 변환해준다.
    document.write(members[i].toUpperCase());   
    document.write('<br />');
}

/*
배열 + 반복문 사용
EGOING
K8805
SORIALGI
*/

배열의 제어

배열은 복수의 데이터를 효율적으로 관리, 전달하기 위한 목적으로 고안된 데이터 타입이다. 따라서 데이터의 추가/수정/삭제와 같은 일을 편리하게 할 수 있도록 돕는 다양한 기능을 가지고 있다. 몇가지 중요한 기능들만 살펴보자.

배열의 크기

var arr = [1, 2, 3, 4, 5];
alert(arr.length);

// 5

배열의 조작

추가

var li = ['a', 'b', 'c', 'd', 'e'];
li.push('f');
alert(li);
// a,b,c,d,e,f (뒤에 추가)          push = 내장함수

push는 인자로 전달된 값을 배열(li)에 추가하는 명령

var li = ['a', 'b', 'c', 'd', 'e'];
li = li.concat(['f', 'g']);
alert(li);

// a,b,c,d,e,f,g 

복수의 원소를 배열에 추가하는 방법이다. concat은 인자로 전달된 값을 추가하는 명령

var li = ['a', 'b', 'c', 'd', 'e'];
li.unshift('z');
alert(li);

// z,a,b,c,d,e 

배열의 시작점에 원소를 추가하는 방법이다.

unshift는 인자로 전달한 값을 배열의 첫번째 원소로 추가하고 배열의 기존 값들의 색인을 1씩 증가시킨다.

var li = ['a', 'b', 'c', 'd', 'e'];
li.splice(2, 0, 'B');
alert(li);

// a,B,c,d,e  2 = index 0 = howmany 

splice는 첫번째 인자에 해당하는 원소부터 두번째 인자에 해당하는 원소의 숫자만큼의 값을 배열로부터 제거한 후에 리턴한다. 그리고 세번째 인자부터 전달된 인자들을 첫번째 인자의 원소 뒤에 추가한다.

제거

var li = ['a', 'b', 'c', 'd', 'e'];
li.shift();
alert(li);

// b,c,d,e 

배열의 첫번째 원소를 제거하는 방법이다. shift를 사용하면 된다.

var li = ['a', 'b', 'c', 'd', 'e'];
li.pop();
alert(li);

// a,d,c,d

배열 끝점의 원소를 배열 li에서 제거한다. 이때는 pop를 사용한다.

정렬

var li = ['c', 'e', 'a', 'b', 'd'];
li.sort();
alert(li);

// a,b,c,d,e          sort = 정렬
var li = ['c', 'e', 'a', 'b', 'd'];
li.reverse();
alert(li);

// e,d,c,b,a          reverse = 역순 정렬

Last updated

Was this helpful?