배열을 객체로 바꾸는 방법 3가지를 알아보자..
1) for 문
2) Spread(스프레드) 문법
3) assign 함수
let obj = {};
for (let i = 0; i < arr.length; i++) {
obj[i] = arr[i];
}
여기에서 헤맸던 이유가 뭐냐면 obj[i]
에서 [i]를 배열에서 index로 생각했기 때문이다.
obj는 객체이므로 ❌배열❌이 아니다.
객체는 { key : value }
의 형태로 생겼다. 여기서 value 값을 불러올 때는 (1) obj.key (2) obj['key'] 이렇게 두가지 방법을 쓴다. 2번의 경우 배열에서 index 값을 사용할때와 모양이 똑같은 것이다.
따라서,
obj[i]
는 객체에서 key 값이 i인 value 값을 뜻하고,
arr[i]
는 배열에서 index가 i인 값을 말하는 것이다.
만약, arr = [a,b,c,d,e]
일때
obj[0] = arr[0] // { 0: a }
obj[1] = arr[1] // { 0: a , 1: b }
...
obj[4] = arr[4] // { '0': a, '1': b, '2': c, '3': d, '4': e}
라는 결과값이 나오는것.. /(ㄒoㄒ)/~~
obj = {...arr}
정말 간단하다..!!
let result = Object.assign({}, arr);
console.log(result);