본문 바로가기

HTML & CSS & JavaScript/JavaScript

배열(Array)

  • 배열
    : 변수를 묶음으로 다루는 것(변수가 연속적으로 나열됨)

    - JavaScript 변수 : 값이 저장되기 전까지 자료형이 지정되지 않음

    - JavaScritpt 배열의 특징
       1) 자료형 제한 X
       2) 길이 제한 X
// 배열 확인 1
document.getElementById('btn1').addEventListener('click',function(){

    // 배열 선언 방법 1
    const arr1 = new Array(3); // 3칸짜리 배열 생성

    const arr2 = new Array();  // 0칸짜리 배열(비어있는 배열) 생성

    // 다른 자료형 대입 가능
    arr1[0] = "라자냐";
    arr1[1] = 19800;
    arr1[2] = true;

    console.log(arr1); // 결과: 이미지 1번

    // 0칸 배열에 대입 -> 배열 길이 자동 증가
    arr2[0] = "라자냐";
    arr2[1] = 19800;
    arr2[2] = true;

    console.log(arr2); // 결과: 이미지 2번

    // 배열 선언 방법 2
    const arr3 = [];                             // 비어있는 배열(0칸)
    const arr4 = ["딸기", "오렌지", "블루베리"]; // 선언 및 초기화

    // for문으로 배열 요소 반복 접근하기
    // 1. 일반 for문


    // 2. 향상된 for문(for ... of) : 배열용 향상된 for문
    for(let fruit of arr4){
        console.log(fruit); // 결과: 이미지 3번
    }
})

1번
2번
3번


  • 배열 관련 함수
    - (Stack 구조 관련 함수) [ first in - last out ]
    - push( ) : 배열의 마지막 요소로 추가
    - pop( ) : 배열의 마지막 요소를 꺼내옴

    - 배열.indexOf("값") : 일치하는 값을 가진 요소의 index를 반환 / 없으면 -1 반환
    - 배열.sort( [ 정렬기준함수 ] ) : 배열 내 요소를 오름차순 정렬(문자열)
       ※ 단, [정렬기준함수]가 작성되면 정렬 결과가 달라짐
    - 배열.toString( ) : 배열 요소를 하나의 문자열로 출력 → 요소 사이에 "," 추가
    - 배열.join("구분자") : 배열 요소를 하나의 문자열로 출력 → 요소 사이에 "구분자" 추가
// 배열 확인 2
document.getElementById('btn2').addEventListener('click', function(){

    // 비어있는 배열 생성
    const arr = [];

    // 1) push() : 배열의 마지막 요소로 추가
    arr.push("미나리 삼겹살");
    arr.push("초밥");
    arr.push("곱창");
    arr.push("갈비1");
    arr.push("냉면");
    console.log(arr); // 결과 : 이미지 1번


    // 2) pop() : 배열의 마지막 요소를 꺼내옴
    console.log("꺼내온 요소 : " + arr.pop()); // 꺼내온 요소 : 냉면
    console.log(arr); // 결과 : 이미지 2번


    // 3) 배열.indexOf("값") : 일치하는 값을 가진 요소의 index 반환 / 없으면 -1 반환
    console.log("초밥 인덱스 : " + arr.indexOf("초밥")); // 1
    console.log("갈비 인덱스 : " + arr.indexOf("갈비")); // -1


    // 4) 배열.sort([정렬기준 함수]) : 배열 내 요소를 오름차순 정렬(문자열)
    const arr2 = [5, 3, 7, 4, 10, 1];

    console.log(arr.sort());  // [갈비1, 곱창, 미나리삼겹살, 초밥] (문자열)
    
    console.log(arr2.sort()); // [1, 10, 3, 4, 5, 7]
                              // 숫자 -> 정상적으로 정렬되지 않음
                              // 왜? 문자열 정렬 기준이 기본값
                              // (문자열로 변환되서 정렬됨)
    // 4-1) 숫자 오름차순 정렬(sort 메소드와 비교함수 사용)
    console.log(arr2.sort(function(a,b){return a-b;})); // [1, 3, 4, 5, 7, 10]


    // 5) 배열.toString() : 배열 요소를 하나의 문자열로 출력( -> 요소 사이에 "," 추가)
    console.log(arr.toString()); // 갈비1, 곱창, 미나리삼겹살, 초밥

    // 배열.join("구분자") : 배열 요소를 하나의 문자열로 출력(-> 요소 사이에 "구분자" 추가)
    console.log(arr.join(" / ")); // 갈비1 / 곱창 / 미나리삼겹살 / 초밥
})

1번
2번