[JavaScript] Spread 연산자 - map 객체 합치기

톰톰·2023년 2월 9일
0

배경

거래처 API 개발 후 안정화 작업 중에 계속 특정 DATA 누락이 발생했다. 도대체 이유를 모르겠어서 이틀 동안 고통스러워 하다가 문제를 발견했다.
각기 다른 화면(화면1, 화면2)에서 동일한 전송로직을 사용하는데 화면(2)에서 필요한 데이터 값이 parameter에 포함되지 않고 있었다...
화면(2)는 최초 개발 시에는 고려되지 않던 화면이라 이미 쿼리를 화면(1)에 맞춰 작성해놓고 화면(2)에서도 동일한 전송로직을 사용하였기에 발생한 실수였다 ㅡ3ㅡ

하여튼 이러한 배경으로 화면 상에서 Java단으로 넘길 때 추가적인 map을 parameter에 추가해야 했다.

다음과 같이 spread operator로 map을 합칠 수 있다.

Spread Operator는 여러 개의 객체를 하나로 병합할 때 사용하는 연산자이다.
'...'로 표시하며, 객체나 배열의 원소를 하나씩 펼쳐서 리턴한다.

sendXXXJobOrder = function(){
   // 기존에 전송한 data
   // {dsp_no: 'dsp001', dsp_pick_location: '서울', ...}
   var dspMap = vm.gridDspInfoData.data();
   // 새로 추가해야하는 data
   // {cntr_no: 'cntr001', cntr_size: '20', cntr_type: 'DC', ...}
   var cntrMap = vm.cntrInfoData.data();
  
   // spread 연산자로 map 합치기
   var sendMap = {...dspMap, ...cntrMap};
  
   var sendParameters = [];
   sendParameters.push(sendMap);
  
   APIEvent.save({pickYmd:"sendXXXJobOrder"},sendParameters)
   .then(function(response){
     ...
   })
}

References

0개의 댓글