ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023 - 06 - 09 ★이중배열
    Today I Learned/TIL 06 2023. 6. 7. 23:57

     

    오늘 할일

    CRUD공부, 배열 공부

     

    오늘 배운것

     

    이중배열

    배열의 인자들이 또 다른 배열들로 되어있는 경우.

    어떻게 가져오느냐에 따라 값이 완전히 뒤바뀐다.

    entries = [[1, 2], [3, 4], [5, 6]]
    
    
    entries[1][1] = 4 // 1번째 인덱스 배열의 1번째 인덱스.
    entries[1], entries[2] = [3, 4], [5, 6] // 1번쨰 인덱스와 2번째 인덱스.

     

    배열은 배열, 문자열 다 적용됨.

    아래 제일중요

    let num = 012345   => 이 자체로 하나의 덩어리. 배열 적용 안됨.
    
    let str_1 = '012345'
    let str_2 = 'abcedf'
    
    let arr_1 = [0,1,2,3,4,5]
    let arr_2 = ['a', 'b', 'c', 'd', 'e', 'f']
    let arr_3 = ['0','1','2','3','4','5']
    let arr_4 = [[1,2,3],[2,3,4],[3,4,5]]
    let arr_5 = [['a','b','c'],['d','e','f'],['g','h','i']]
    let arr_6 = ['a','b',['c','d']],['e','f',['g','h']]
    
    
    console.log(str_1[3]); // 3
    console.log(str_2[5]); // f
    
    console.log(arr_1[2]); // 2 숫자열
    console.log(arr_2[3]); //d
    console.log(arr_3[3]); // 3
    console.log(arr_4[1][1]); // 3 숫자열
    console.log(arr_5[2][1]); // h
    console.log(arr_6[1][2][0]); // g
    
    여기서 알아두어야 할 점은,
    console.log(arr_3[3])의 값이 3으로 나왔고
    console.log(arr_4[1][1]) 값도 3으로 나왔다고 해서 둘이 같은게 아니다.
    console.log(arr_4[1][1])는 따옴표가 없는 숫자열 형식이기 때문에 숫자열이며
    
    이를 문자열에 쓸 때는 toString으로 문자열화 시켜야 한다.
    반대로 문자열을 숫자열 자리에 쓸 때는 Num()으로 숫자열화 시켜야 한다.

     

     

    예를들어

     

    로컬스트로지의 key값과 Value값을 모두 가져오는 Object함수를 이용한 경우

    localStorage 값이 다음과 같을 때. 이것도 마찬가지로 이중배열이다.

    localStorage는 인덱스가 0부터 7까지 있고,

    각각의 인덱스들은 또다른 배열로써 key값(인덱스0)과 value값(인덱스1)을 갖는다.

    [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2)]
    
    0['1686139717521', '{"id":1686139717521,"name":"123123","pw":"ss","content":"ss"}']
    
    1['1686141188794', '{"id":1686141188794,"name":"dd","pw":"dd","content":"dd"}']
    
    2['1686139871937', '{"id":1686139871937,"name":"ss","pw":"ss","content":"ss"}']
    
    3['1686142963977', '{"id":1686142963977,"name":"123","pw":"123","content":"123"}']
    
    4['1686141512031', '{"id":1686141512031,"name":"dd","pw":"dd","content":"dd"}']
    
    5['1686141193654', '{"id":1686141193654,"name":"dd","pw":"dd","content":"dd"}']
    
    6['1686142621554', '{"id":1686142621554,"name":"123","pw":"123","content":"123"}'] 
    
    7['1686141512799', '{"id":1686141512799,"name":"dd","pw":"dd","content":"dd"}']
    
    length  8

    따라서,

    로컬스토리지에 저장된 값을 JSON.parse를 통해 forEach로 가져올 경우

     

    아래 k[1]에서 k는 0부터 차례대로 들어가는 첫번째 인덱스 값, 즉 첫번째 대괄호를 forEach문에서의 k라고 생각하면 된다

    [0][1],  [1][1],  [2][1],  [3][1]...

    그 뒤에 [1]은 k에서의 첫번째 인덱스, 즉 각각의 value들, 즉 '{"id":1686139717521,"name":"123123","pw":"ss","content":"ss"}' 이런 값들이다.

    그리고 우리는 여기서 name을 구하기 위해서 뒤에 점 찍고 name함.

        const entries = Object.entries(localStorage);
        entries.forEach(k => {
            const name = JSON.parse(k[1]).name;
            console.log(name);
        })

     

    댓글

Designed by Tistory.