dukDukz

21.04.14 배열과 이중배열 본문

웹 개발/JAVASCRIPT

21.04.14 배열과 이중배열

헤일리_HJ 2021. 4. 14. 10:03

1. 배열을 선언하는 방법 2가지

        arr = new Array();
        arr = [];

        arr=[,,,,,];
        console.log(arr);

 

2. push : Array push() Method : 요소가 항상 마지막에 추가됨

        arr = [1,2,3];
        arr.push(4);
        arr.push(5);
        arr.push(6);
        console.log(arr);   // [1, 2, 3, 4, 5, 6]

 

3. pop : Array push의 반대 - 항상 맨 마지막 값이 제거됨

        arr.pop();
        arr.pop();
        console.log(arr);   // [1, 2, 3, 4] 두번 써서 끝에 두개가 사라짐

 

4. indexOf

indexOf 인자값이 2개가 들어간다

Key   [0 1 2 3 4 5 6 7 8 9]

Value [1 2 3 4 5 6 7 8 9 10]

1: 찾을 요소 2: 어디서부터 찾을지

찾고 나면 결과 값은 내가 찾은 값의 Key 값을 반환한다.

        console.log(arr.indexOf(4,0));  // 3   
        console.log(arr.indexOf(4,4));  //-1 --> 찾을 수 없다는 뜻  
        console.log(arr.indexOf(4,2));  // 3

 

5. 배열 안에 이중배열

        arr2 = [1,2,3,4,5,6,[1,2,3]];   // length = 7
        
        console.log(arr2);              // (7) [1, 2, 3, 4, 5, 6, Array(3)]
        console.log(arr2[4]);           // 5
        console.log(arr2[6]);           // (3) [1, 2, 3]
        console.log(arr2[6][0]);        // 1

 

 

6. 이중배열

 

1) 빈 배열로 선언하기

        arr3 = [[,,,,],[,,,,],[,,,,]];
        
        console.log(arr3);              //(3) [Array(4), Array(4), Array(4)]

 

2) 값을 넣어서 선언하기

        // 3*4 3층짜리 아파트 층별로 4호실까지 있음
        
        arr3 = [[101,102,103,104],[201,202,203,204],[301,302,303,304]];
        console.log(arr3);
        console.log(arr3[0][3]);    // 104 출력

        arr3[1].pop();              // 204 빼기
        console.log(arr3[1]);

        arr3[1].push(204);          // 204 넣기
        console.log(arr3[1]);

 

 

 

7. for문

        arr3 = [[101,102,103,104],[201,202,203,204],[301,302,303,304]];

        for(let i=0; i<arr3.length; i++){
            for(let j=0; j<arr3[i].length; j++){
                console.log(arr3[i][j]);
            }
        }

 

8. forEach 문 - 배열에서 많이 쓰는 for문

        arr3 = [[101,102,103,104],[201,202,203,204],[301,302,303,304]];
        arr3.forEach(v1 => {
            v1.forEach(v2 =>{
                console.log(v2);
            });
        });

 

결과는 동일

 

9. Array.fill();

const array1 = [1, 2, 3, 4];

// fill with 0 from index 2 until index 4
console.log(array1.fill(0, 2, 4));
// expected output: [1, 2, 0, 0]

// fill with 5 from index 1
console.log(array1.fill(5, 1));
// expected output: [1, 5, 5, 5]

console.log(array1.fill(6));
// expected output: [6, 6, 6, 6]

 

 

10. Array.slice();

arr.slice(시작점, 끝점);

시작점은 포함 끝점은 미포함

 

 

11. 배열, 이중배열 만들기

1) 배열만들기

        let arr2 = Array.from(Array(5).fill(0));
        console.log(arr2);

[0,0,0,0,0]

 

 

 

2) 이중배열 만들기

    let arr1 = Array.from(Array(5), ()=> new Array(3).fill(0));
    console.log(arr1);

 

 

12.  이중배열 내용 변경하기

        let arr1 = Array.from(Array(5), () => new Array(3).fill(0));
       
        arr1[0][1] = 'hello';
        arr1[1][2] = 33;
        console.log(arr1);

 

 

 

13. 이중배열 내용 출력 forEach

 

       arr1.forEach(v => {
            console.log(v);
            v.forEach(v2 => {
                console.log(v2);
            });
            console.log('--------------');
        });

 

 

14. forEach 구구단

 

    let gugudan =  [
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,5,6,7,8,9]
    ];
    
    /* 2중배열 forEach문 사용해서 */
    gugudan.forEach((v,index)=>{
        v.forEach(v2 =>{
            console.log(`${index+2}*${v2}=${index*v2}`);
        });
        console.log(' ');
    });

----- 해서 9단까지 나옴