배열
배열 선언 방법
자바스크립트의 배열은 배열 선언 시 배열 요소의 수를 정할 수 있고 프로그램 실행 중에 추가할 수도 있다.
var cities = ["Seoul", "New York"]; alert("cities.length=" + cities.length); var years = new Array(1969, 1970); years[46] = 2015; //이런식으로 배열 요소를 추가할 수 있다. alert("years.length=" + years.length); alert("years=" + years); for (var idx in years) { alert(years[idx]); }
배열의 메소드
- splice() : 배열에서 요소를 추가/제거한다. 제거되는 요소를 반환한다.
- slice() : 배열의 부분으로 새로운 배열을 만들어 리턴한다.
- concat() : 2개 이상의 배열을 합치고 합친 배열의 복사본을 리턴한다.
- reverse() : 배열의 순서를 뒤집는다.
concat()과 slice()는 원래의 배열을 변경하지 않고, 수행 결과를 새로운 배열로 반환한다.
자바스크립트 엔진은 배열을 배열 요소가 콤마(,) 로 구분되어 있는 문자열로 변환한다.
var words = new Array('A','B','C','D','E'); var s1 = words.splice(2,2,'c','d');//인덱스2부터 2개 제거하고 2개의 요소 추가 alert(words); alert(s1); var s2 = words.slice(2,4);//2는 포함 4는 포함되지 않는 부분 배열 반환 alert(s2); alert(words);
for .. in 문 사용 예
var lang = ["C", "JAVA", "javascript"]; for (var idx in lang) { alert(lang[idx]); }
연관 배열 (일종의 맵이다)
연관 배열에는 인덱스를 사용해서 요소에 접근할 수 없다.
연관 배열을 생성할 할 때는 Object를 일반적으로 사용한다.
새 요소가 추가될 때마다 배열은 자동으로 확장된다.
var account = new Object(); account["accountNo"] = "111-222-333333"; account["name"] = "홍길동"; account["balance"] = 100; alert(account["name"]); alert(account.balance);
아래는 연관 배열에서 요소에 접근하는 예다.
연관 배열 document의 요소인 getElementsByTagName()에 접근한다.
연관 배열 Math의 요소 ceil()에 접근한다.
document.getElementsByTagName('a'); Math.ceil(175);
document 객체의 요소를 출력하면 이해가 쉽다.
for (var property in document) { alert(property + ":" + document[property]); }
자바스크립트 객체는 연관 배열임을 알 수 있다.
결과는 브라우저마다 다르다.