유사 배열 객체
이름 그대로 배열과 유사한 객체
배열처럼 보이지만, 사실 key가 숫자이고, length 값을 가지고 있는 객체
JS 에서 querySelectorAll이나 document.body.children으로 엘리먼트를 가져오면 유사 배열 객체에 담겨서 온다.
// 배열
var arr1 = ['aaa', 'bbb', 'ccc'];
console.log(arr1); // (3) ["aaa", "bbb", "ccc"]
// 유사배열
var arr2 = document.body.children;
console.log(arr2);
// HTMLCollection(10) [header.main-header, aside.main-sidebar, div.wrapper, div#playerArea,
// iframe#history, script, div.ax5-ui-toast-container.top-right, div.ax5-ui-toast-container.top-right,
// div.ax5-ui-toast-container.top-right, div#syno-nsc-ext-comp-1008.x-tip-invalid, playerArea: div#playerArea,
// history: iframe#history, syno-nsc-ext-comp-1008: div#syno-nsc-ext-comp-1008.x-tip-invalid]
유사배열객체는 배열 처럼 생겼지만 객체이고,
객체지만 일반객체와 다르다.
forEach, map, filter, reduce 같은 메서드를 사용 할 수 없다.
위 메서드를 사용 하기 위해서 Array.from()으로 유사 배열 객체에 있는 value 를 복사해 배열로 만들어 사용한다.
const texts = document.querySelectorAll('.text');
Array.from(texts).map((text) => console.log(text));
'coding > JS' 카테고리의 다른 글
class의 호이스팅 (0) | 2022.08.09 |
---|---|
객체지향 class (ES5/ES6) (0) | 2022.08.09 |
js 객체 비구조화 할당 (0) | 2022.07.29 |
네이버 지도 API (0) | 2022.07.28 |
rest API PUT/PATCH/POST (0) | 2022.07.27 |