Array.from()은 문자열, Node list 같은 유사 배열 객체 ( 유사 배열 객체(array-like object)는 인덱스(index)를 사용하여 각 요소에 접근할 수 있으며, length 속성을 가진 객체(Object)를 말한다.) 또는 반복 가능한 객체를 새로운 배열로 반환하는데 사용할 수 있다.
map()에 대해 잘 알고 있으면 array.from()도 이해가 굉장히 쉬울 것 같다.
e는 변환하고자 하는 객체의 값, i는 그의 인덱스, arr는 그의 배열.
1. 문자열을 한 글자씩 배열로 반환하기 const str = "hello"; const arr = Array.from(str); console.log(arr); // ["h", "e", "l", "l", "o"] 2. 맵핑 함수를 사용해 새로운 배열 반환하기 const arr = [1, 2, 3]; const newArr = Array.from(arr, (x) => x * 2); console.log(newArr); // [2, 4, 6] x는 맵핑함수의 첫번째 인자이므로 arr의 value를 뜻함. 즉, [1*2, 2*2, 3*2]를 뜻하는것이고 newArr은 [2,4,6]이 된다!!
Array.from()은 얉은복사를 한다. 즉, 객체의 프로퍼티가 원시 데이터 형식이면 완전히 새로운 배열로 사용할 수 있지만, 객체 안에 객체가 있는 등 참조 자료형의 프로퍼티가 있다면 그 참조(reference)만 복사되기 때문에, 얉은 복사를 한다고 할 수 있다.