인프런 커뮤니티 질문&답변

haemil님의 프로필 이미지
haemil

작성한 질문수

Node.js로 웹 크롤링하기

6-1. 프록시 설명과 태그 분석

6-1. 프록시 설명과 태그 분석 강의를 보고 질문드립니다.

작성

·

220

1

안녕하세요 제로초님 [6-1. 프록시 설명과 태그 분석] 강의를 보고 궁금한 점이 생겨서 질문드립니다.

아래 코드에서 Array.from() 의 역할이 무엇인지 잘 모르겠습니다. ㅠㅠ...

Array.from()을 MDN에서 찾아보니 유사 배열 객체(array-like object)나반복 가능한 객체(iterable object)를 얕게 복사해새로운Array 객체를 만든다고 하는데 

Array.from() 으로 감싸기 전의 DOM API로 선택한 요소들(document.querySelectorAll('tr > td:first-of-type > .spy14'))을 왜 새롭게 Array 객체로 만드는 걸까 의문이 들어서 질문드립니다. 

음 학습하면서 추론해보는 내용인데 혹시 DOM API로 선택한 유사배열 객체를 Array.from() 으로 감싸지 않으면 `map()` 함수를 쓸 수 없기 때문에 감싸는 것인가요? 아니면 혹시 다른 이유가 있는 것인지 궁금합니다.

```javascript

Array.from(document.querySelectorAll('tr > td:first-of-type > .spy14')).map(v => v.textContent.replace(/document\.write\(.+\)/, ''));

```

강의 잘 보고 있습니다. 제로초님 건강하세요

답변 2

2

haemil님의 프로필 이미지
haemil
질문자

감사합니다 제로초님 곧 출간되는 Node 교과서도 기대하고 있겠습니다. 🙌🙌

2

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다. 쿼리셀렉터는 배열이 아니라서 map을 쓸 수 없습니다. 다만 배열 모양의 객체라서 어레이프롬을 쓰면 배열로 바꿔줍니다.

haemil님의 프로필 이미지
haemil

작성한 질문수

질문하기