[JS] 깊은 복사( _.deepClone)

wheezy·2021년 10월 12일
0

JavaScript

목록 보기
3/18


이전 게시글에서 먼저 Lodash에 대해 간략히 포스팅했다.
🎈 이번에는 내가 쓴 직접 써본 method인 _.cloneDeep 에 대해 설명할 예정이다.

old_data라는 배열과 new_data라는 배열이 있다고 가정해보자.
나는 엑셀 다운로드( old_data) 후 컬럼에 대해서 수정을 하고 수정된 엑셀 파일(new_data)을 첨부하는 과정을 구현하였다.
쉽게 말해 old_data 배열과 new_data 배열을 비교하는 로직이다.

하지만 파일 첨부하는 과정에서 웹 페이지를 새로고침 하지 않고 모달 창만 close 하고 open 하면서 파일 첨부를 하면 old_data가 new_data로 바뀌는 버그가 일어났다.

해결 방법은 의외로 허무했다. 😥
기존에 dataTable을 통해서 old_data 배열을 가져왔는데 객체를 복하사여 가져오니, old_data는 더이상 new_data로 바뀌지 않았다.

//old_data와 new_data를 비교하는 함수
function compareData() {
    fn_dataTable();
    let old_data = deepCopy;
    let new_data = EXCEL_JSON // 엑셀에서 갖고 온 데이터
                .
                .
                .
}

//깊은 복사로 dataTable데이터 가져오기
function fn_dataTable() {
    let tblEle = $('#id');
    deepCopy = _.cloneDeep(tblEle.DataTable().data());
    return tblEle.DataTable().data();
}
profile
🧀 개발을 하면서 도움이 되었던 부분을 기록하는 공간입니다 🧀

0개의 댓글