JS의 기본을 단단히 하고자 '코어 자바스크립트' 도서를 읽고 있다.
'실행컨텍스트'나 'THIS' 개념 정리도 필요하지만 머릿속에 완전한 정립이 되지 않아 한번 더 정독한 뒤에 블로그 작성 예정이다.
그에 앞서, 새로 알게 된 'Array.from' 메서드 에 대해 기록해보겠다.
ES6문법에 도입된 메서드로 유사배열객체 또는 반복 가능한 모든 종류의 데이터 타입을 배열로 전환해준다.
Array.from(iterable obj, mapFn, thisValue)
iterable obj - essential
→ 배열로 변환 할 객체
mapFun - optional
→ 변환될 배열의 모든 요소에 호출될 콜백함수
thisValue - optional
→ mapFn 실행 시, this로 바인딩 되어 사용할 값
iterable obj는 length가 존재하는 객체로 obj[1], obj[2]와 같이 접근이 가능하지만 배열이 아니기 때문에 obj.push(), obj.pop() 혹은 obj.sort() 로 활용이 불가능하다.
따라서, 순회가 가능한 객체의 배열화가 필요할 때 활용할 때 좋고 사용방법은 다음과 같다.
const test1 = Array.from({length : 3}, (val, idx) ⇒ val)
console.log(test1) // expected : [undefined, undefined, undefined]
const test2 = Array.from({length : 3}, (val, idx) ⇒ idx)
console.log(test2) // expected : [0, 1, 2]
const test3 = Array.from(new Map([[1,3], [2,4], [3,5]]))
console.log(test3) // expected : [[1,3], [2,4], [3,5]]]