배열 객체
변수에는 1개의 데이터만 저장된다. 여러개의 데이터를 하나의 저장소에 저장하려면 배열 객체(array object)를 생성하면 된다.
배열 객체를 생성하는 기본 문법은 아래와 같다.
// 1. var 참조변수 = new Array();
// 참조변수[0]=값1; 참조변수[1]=값2; 참조변수[2]=값3;
var d = new Array();
d[0] = 30;
d[1] = "안녕";
d[2] = true;
// 2. var 참조변수 = new Array(값1, 값2, 값3);
var d = new Array(30, "안녕", true);
// 3. var 참조변수 = [값1, 값2, 값3];
var d = [30, "안녕", true];
배열 객체를 생성하는 세가지 방식은 모두 같은 결과로 저장된다. 이중에서 간편한 방식을 사용하면 된다.
각각의 데이터는 배열로 나뉘어진 저장소에 나열되며, 각각의 저장소에는 인덱스 번호가 부여된다.
인덱스 번호는 0부터 시작한다.
-배열 객체에 저장된 데이터 불러오기
배열 객체에 저장된 데이터를 불러올 때는 아래의 기본문법을 사용한다.
// 참조변수[인덱스번호];
d[1];
-배열 객체의 메서드 및 속성
join(연결문자) : 배열 객체의 데이터를 연결 문자 기준으로 1개의 문자형 데이터로 반환한다.
reverse() : 배열 객체의 데이터의 순서를 거꾸로 바꾼 후 반환한다.
sort() : 배열 객체의 데이터를 오름차순으로 정렬한다.
slice(index1,index2) : 배열 객체의 데이터 중, 원하는 인덱스 구간만큼을 잘라서 배열 객체로 가져온다.
splice() : 배열 객체에 지정 데이터를 삭제하고 그 구간에 새 데이터를 삽입할 수 있다.
concat() : 2개의 배열 객체를 하나로 결합시킨다.
pop() : 배열에 저장된 데이터 중 마지막 인덱스에 저장된 데이터를 삭제한다.
push(new data) : 배열 객체의 마지막 인덱스에 새 데이터를 삽입한다.
shift() : 배열 객체에 저장된 데이터 중 첫번째 인덱스에 저장된 데이터를 삭제한다.
unshift(new data) : 배열 객체의 가장 앞의 인덱스에 새 데이터를 삽입한다.
length : 배열에 저장된 총 데이터의 개수를 반환한다.
-배열 객체 예제1
var num = ["사당", "교대", "방배", "강남"];
document.write(num, "<br>");
document.write(typeof num, "<br>");
document.write(num.join("-"), "<br>");
document.write(typeof num.join("-"), "<br>");
document.write(num.reverse(), "<br>");
document.write(num.sort(), "<br>");
배열 객체 메서드 중 join()과 reverse() 그리고 sort()를 사용한 예제이다.
우선 변수 num에 배열을 저장하고, 배열 객체와 배열 객체의 형을 출력하였다.
그리고 join() 메서드를 사용해서 배열에 있는 여러 데이터들이 -를 기준으로 한개의 문자 데이터로 연결되도록 하였다.
reverse() 메서드를 사용했을 때는 배열의 데이터의 순서가 반대로 뒤집어서 출력되었고, sort() 메서드를 사용했을 때는 배열 객체의 값들을 오름차순으로 정렬해서 출력하였다.
-배열 객체 예제2
var greenLine = ["사당", "교대", "방배" ,"강남"];
greenLine.splice(2, 1, "서초", "역삼");
document.write(greenLine, "<br>");
document.write(greenLine.slice(1,3), "<br>");
배열 객체 메서드 중 splice()와 slice()를 사용한 예제이다.
변수 greenLine에 4개의 값을 저장한 후, splice() 메서드를 사용해서 인덱스 2에 저장된 데이터 1개를 삭제하고, 같은 자리에 새로운 데이터들을 삽입했다.
slice(1,3)은 배열 객체의 인덱스 1부터 시작해서 인덱스 3의 전까지의 일부 데이터만 선택하여 배열 객체로 반환해준다.
-배열 객체 예제3
var greenLine = ["사당", "교대", "방배", "강남"];
var yellowLine = ["미금", "정자", "모란", "수서"];
var twoLine = greenLine.concat(yellowLine);
document.write(twoLine, "<br>");
greenLine.pop();
document.write(greenLine, "<br>");
greenLine.push("삼성");
document.write(greenLine, "<br>");
greenLine.shift();
document.write(greenLine, "<br>");
greenLine.unshift("신도림");
document.write(greenLine);
배열 객체 메서드 중 concat(), pop(), push(), shift(), unshift()를 사용한 예제이다.
변수 greenLine과 yellowLine에 각각 4개씩의 데이터들을 저장한 후, concat() 메서드를 사용해서 2개의 배열 객체가 하나의 객체가 되어 변수 twoLine에 저장되도록 하였다.
그리고 pop() 메서드를 사용해서 배열 객체의 마지막 인덱스에 위치한 값인 “강남”을 삭제했고, push() 메서드를 사용해서 배열 객체의 마지막 인덱스로 “삼성”을 삽입했다.
마지막으로 shift() 메서드를 사용해서 배열 객체의 첫번째 인덱스에 위치한 값인 “사당”을 삭제했고, unshift() 메서드를 사용해서 배열 객체의 맨 첫번째 인덱스로 “신도림”을 삽입했다.