[javascript] 동적인 key와 value를 가진 json 객체 만들기

2023. 5. 10. 19:00Programming/기술 정리


요일별 통계쿼리 데이터를 무한정적 동적으로 셋팅하거나,
id값이 계속해서 달라지는 신청서 form의 값을 프론트=> 백으로 전송하기 위해 찾았던 방법이다.


let obj = {};
var column= ["key1","key2","key3"];
var data = ["test1","test2","test3"];



첫번째로 시도했던 방법은

for(var i =0 ; i< column.length; i++){
   obj.column[i] = data[i]; 
}


그러나 Cannot set properties of undefined(setting '0') 오류가 나오면서,
객체의 값을 동적으로 가져오는데 실패. 




두번째로 시도했던 방법은

for(var i = 0; i< column.length; i++){
   obj.column = data[i]; 
}

이 경우 오류는 나지않았지만,  obj객체에 key값이 column이라는걸 객체에 지정하는 방법이기때문에
최종적으로 obj에 key값이 column인 value 3만 남기때문에 본래의 의도와는 맞지 않았다. 





여러가지 삽질 끝에 방법을 몇개 찾았고,

그중 가장 깔끔하게 동적인 key를 가진 obj를 얻어오는 방법

for(var i = 0; i< column.length; i++){
   obj[column] =  data[i]; 
}



obj= {"key1": "test1", "key2": "test2", "key3": "test3" };