Dev./javascript

[JS] 두 배열을 하나의 오브젝트로 합치기

인쥭 2021. 11. 5. 16:33
반응형
  • 어쩌다가 오브젝트의 key를 모아둔 배열과 values를 모아둔 배열을 합쳐야한다고 할 때, 다음과 같이 해볼 수 있다.
const keys = ['k1', 'k2'];
const values = ['injuk', 'ingnoh'];

const result = keys.reduce((acc, curr, idx) => {
    acc[curr] = values[idx];
    return acc;
}, new Object);

console.log(result);

/* 실행 결과
{ k1: 'injuk', k2: 'ingnoh' }
*/
  • 또는 object에 [key]로 새로운 값을 추가할 수 있는 점을 이용하여 다음과 같이 사용해볼 수도 있다고 함.
    • 요 방법은 링크에서 oneline으로 처리하는 내용을 볼 수 있다.
const keys = ['k1', 'k2'];
const values = ['injuk', 'ingnoh'];

const result = keys.reduce((acc, curr, idx) => {
    return { ...acc, [curr]: values[idx] };
}, new Object);
console.log(result);

/* 실행 결과
{ k1: 'injuk', k2: 'ingnoh' }
*/
  • 어떠한 형태로든 배열을 하나의 결과로 뭉칠 필요가 있다면 reduce를 떠올리자. 짱듀스