배열을 객체(object)로 변환하는 방법을 소개합니다.
1. Object.assign()으로 배열을 객체로 변환
Object.assign(target, source)는 source의 내용을 target에 복사합니다. 아래와 같이 배열을 source로 전달하면 '0', '1', '2'
처럼 Index가 key가 되고, 배열의 요소가 value로 이루어진 객체가 생성됩니다.
let arr = ['first', 'second', 'third'];
let obj = Object.assign({}, arr);
console.log(obj);
Output:
{ '0': 'first', '1': 'second', '2': 'third' }
2. Spread operator로 배열을 객체로 변환
Spread operator를 이용하여 다음과 같이 배열을 객체로 변환할 수 있습니다. key는 Index가 됩니다.
let arr = ['first', 'second', 'third'];
let obj = {...arr}
console.log(obj);
Output:
{ '0': 'first', '1': 'second', '2': 'third' }
3. forEach()로 배열을 객체로 변환
만약 key가 Index가 아닌 어떤 값으로 변경하고 싶다면 forEach와 같이 반복문을 사용하여 직접 배열을 객체로 변환할 수 있습니다.
let arr = ['first', 'second', 'third'];
let obj = {};
arr.forEach((element, index) => {
obj['key' + index] = element;
});
console.log(obj);
Output:
{ key0: 'first', key1: 'second', key2: 'third' }
4. Array.reduce()로 배열을 객체로 변환
forEach()대신에 Array.reduce()를 사용하여 특정 key로 객체를 생성할 수 있습니다.
let arr = ['first', 'second', 'third'];
let obj = arr.reduce((accumulator, value, index) => {
return {...accumulator, ['key' + index]: value};
}, {});
console.log(obj);
Output:
{ key0: 'first', key1: 'second', key2: 'third' }
5. Object.fromEntries()로 key-value 쌍의 배열을 객체로 변환
Object.fromEntries()는 key-value 요소를 갖고 있는 Array 또는 Map을 인자로 전달하면 객체로 변환합니다.
let arr = [['first', 'A'], ['second', 'B'], ['third', 'C']];
let obj = Object.fromEntries(arr);
console.log(obj);
Output:
{ first: 'A', second: 'B', third: 'C' }
참고로, Object.fromEntries()
으로 Map을 객체로 전달하면 아래와 같이 구현할 수 있습니다.
let map = new Map([['first', 'A'], ['second', 'B'], ['third', 'C']]);
console.log(map);
let obj = Object.fromEntries(map);
console.log(obj);
Output:
Map(3) { 'first' => 'A', 'second' => 'B', 'third' => 'C' }
{ first: 'A', second: 'B', third: 'C' }
Loading script...
Related Posts
- JavaScript - slice()로 배열 자르기, 나누기
- Node.js - 파일에 특정 문자열이 포함되어있는지 확인
- Node.js - 특정 패턴과 일치하는 모든 파일 찾기
- Node.js - 디렉토리의 파일 리스트 가져오기
- Node.js - 파일, 디렉토리(하위 파일) 삭제
- Node.js - 파일 이름 변경
- JavaScript - switch 조건문
- JavaScript - 배열의 특정 요소 찾기, Index 찾기
- JavaScript - 특정 값으로 배열 채우기, Array.fill()
- JavaScript - null, undefined 체크 방법
- JavaScript - 배열을 객체로 변환, 4가지 방법
- JavaScript - 이번 달(특정 달)의 1일, 마지막 일 구하기
- JavaScript - 배열의 특정 요소 삭제 방법
- JavaScript - 배열에 특정 값이 포함되어있는지 확인
- JavaScript - Date에 시간(일/시/분/초) 더하기
- JavaScript - 변수가 배열인지 확인, 3가지 방법
- JavaScript - 변수가 문자열인지 확인
- JavaScript - 문자열이 숫자인지 확인
- JavaScript - Map의 key를 배열로 변환
- JavaScript - Map의 value를 배열로 변환
- JavaScript - Map 요소 삭제 방법