-
[배열] - 활용JavaScript/기본 1 2022. 1. 15. 14:25
- 희소 배열
- 배열에 속한 요소의 위치가 연속적이지 않은 배열
- length 프로퍼티 값보다 배열 요소의 개수가 적다
-
// 예제 var arr = new Array(); // 빈 배열 객체 생성 arr[99] = "JavaScript"; // 배열 arr의 100번째 위치에 문자열 삽입 document.write("배열의 길이는" + arr.length + "입니다."); // 배열의 길이는 100입니다.
- 다차원 배열
- 배열 요소가 또 다른 배열인 배열을 의미
- 2차원 배열 : 배열 요소가 1차원 배열인 배열
- 3차원 배열 : 배열 요소가 2차원 배열인 배열
-
// 예제 var arr = new Array(3); // 3개의 요소를 가지는 배열 생성 for(var row = 0; row < 3; row++) { arr[row] = new Array(4); // 각각의 요소마다 또다시 4개의 요소를 가지는 배열 생성 for(var column = 0; column < 4; column++) { arr[row][column] = "[" + row + "," + column + "]"; // 각각의 배열 요소 생성 document.write(arr[row][column] + " "); // 각 배열 요소에 접근함 } } // [0,0] [0,1] [0,2] [0,3] // [1,0] [1,1] [1,2] [1,3] // [2,0] [2,1] [2,2] [2,3]
- 연관 배열 (associative array)
- 배열의 인덱스에는 0을 포함한 양의 정수만 사용
- 숫자로 된 인덱스 대신에 문자열로 된 키를 사용하는 배열 => 연관배열
- 자바스크립트는 내부적으로 Array객체에서 기본 객체로 재선언
- ECMAScript 6부터는 Map 객체를 별도로 제공
-
// 예제 var arr = []; // 비어있는 배열 생성 arr["하나"] = 1; // 숫자 인덱스 대신 문자열을 인덱스로 배열 요소 추가 arr["참"] = true; arr["자바스크립트"] = "JavaScript"; document.write(arr["참"]); // 문자열을 인덱스로 배열 요소에 접근할 수 있음 // true document.write(arr.length); // 연관 배열은 Array객체가 아니므로 length프로퍼티의 값음 0 // 0 document.write(arr[0]); // undefined
- 문자열을 배열처럼 접근하기
- 문자열은 변하지 않는 값 (읽기 전용)
- [ ] 연산자를 사용해 문자열을 구성하는 문자에 바로 접근
-
// 예제 var str = "안녕하세요!"; // 문자열 생성 document.write(str.charAt(2)); // 하 document.write(str[2]); // 하 - 문자열을 바로 배열처럼 사용하지 말고
split( ) 메소드를 이용해 먼저 배열로 변환한 후 사용하는 것이 좋다.
- 자바스크립트에서 배열 여부 확인
- 배열이라는 타입을 별도로 제공하지 않는다.
- 배열은 객체 타입이며
typeof연산자 사용 => object반환 -
// 예제 var arr = [1, true, "JavaScript"]; // 배열 생성 documnet.write(typeof arr); // object -
// 배열인지 여부 확인방법 // Array.isArray() => 구형 브라우저에서는 지원하지 않을 수 있음 // instanceof 연산자 // constructor 프로퍼티 var arr = [1, true, "JavaScript"]; // 배열 생성 document.write(Array.isArray(arr)); // true document.write(Array.isArray("문자열")); // false document.write(arr instanceof Array); // true document.write(123 instanceof Array); // false -
// constructor 프로퍼티 반환값 // 문법 function Array() { [native code] } // 예제 // toString() // constructor프로퍼티의 값을 문자열로 변환 //indexOf() // 해당 문자열에서 "Array"라는 부분 문자열이 시작하는 인덱스 구하고 있음 // 찾지 못하면 -1반환 function isArray(a) { return a.construnctor.toString().indexOf("Array") > -1; } var arr = [1, true, "JavaScript"]; // 배열 생성 document.write(arr.constructor); // constructor 프로퍼티의 값 출력 // function Array() { [native code] } document.write(arr.constructor.toString()); // function Array() {[native code]} document.write(arr.constructor.toString().indexOf("Array")); // 9 document.write(isArray(arr)); // true
'JavaScript > 기본 1' 카테고리의 다른 글
[함수] - 변수의 유효범위 (0) 2022.01.16 [함수] - 기초 (0) 2022.01.16 [배열] - 기초 (0) 2022.01.15 [제어문] - 기타 제어문 (0) 2022.01.11 [제어문] - 반복문 (iteration statements) (0) 2022.01.11 - 희소 배열