• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 localStorage.getItem() 에 대한 값전달과 참조전달

localStorage.getItem() 에 대한 값전달과 참조전달

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #7327

    강현철
    참가자

    상품의 상세정보를 본 내역들을 localStorage에 저장하기 위해 아래와 같은 코드를 만들었습니다.

    useEffect(() => {

        testLocalStorage();

        return () => {
          recentItemCheck();
        };
      }, []);

    function recentItemCheck() {
        let arr = localStorage.getItem('recentItem');
        arr = JSON.parse(arr);

        if (arr === null) {
          arr = [];
          arr.push(Number(id));
        } else if (arr.indexOf(Number(id)) === -1) {
          arr.push(Number(id));
        } else {
          arr.splice(arr.indexOf(Number(id)), 1);
          arr.push(Number(id));
        }

        if (arr.length > 3) {
          arr.shift();
        }

        localStorage.setItem('recentItem', JSON.stringify(arr));
      }

     

    아래의 테스트 코드로 확인해본 결과 localStorage.getItem()을 통해 받아온 값은 값에의한 전달로 확인이 되었습니다.

    function testLocalStorage() {
        let testArr = [1, 2, 3, 4, 5];
        localStorage.setItem('testArr', JSON.stringify(testArr));
        let temp = localStorage.getItem('testArr');
        let test = JSON.parse(temp);
        test[0] = 999;
        console.log(testArr);
        console.log(test);
      }

    여기서 질문을 드리면, recentItemCheck() 내부에 로컬저장소에서 받아온 arr 변수를 굳이 다른 변수로 복사하지 않고 arr을 수정해서 다시 로컬저장소로 보내도 된다고 생각했습니다. 이렇게 해도 되는 것인지 질문드립니다.

    #7329

    codingapple
    키 마스터

    localStorage에서 가져온 JSON데이터를 변형할 때는 굳이 사본 만들 필요 없습니다  

    object, array데이터들을 JSON으로 변형하면 object, array의 성질을 잃어버리고 그냥 문자자료랑 비슷해집니다 

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠