ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [배열] - 활용
    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
Designed by Tistory.