✍️ react-saga를 공부하다 generator > iterator> 유사 배열 까지 왔다. 작업 하다 보면 종종 배열인데, method(ex) forEach, slice, splice…..)가 안 되는 경우가 있다. 알고 보니 진짜 배열이 아니라 유사 배열이라 안되는 것이었다. 때마다 어떻게 어떻게 대처했는데 제대로 알고 사용하고자 다음 글을 정리 해 보았다.
선언 방법
대괄호 ([])를 이용하여 선언
✅ 많이 사용하는 방법
const fruit = ['mango', 'orange', 'apple'];
new Array() 를 이용하여 선언
const fruit = new Array('mango', 'orange', 'apple');
특징
alert(fruit[0]); // mango
alert(fruit[1]); // orange
alert(fruit[2]); // apple
alert(fruit.length) // 3
const likefruit = {
0: 'tomato',
1: 'strawberry',
2: 'watermelon',
length: 3
};
특징
alert(likefruit[0]) // tomato
alert(likefruit[1]) // strawberry
alert(likefruit[2]) // watermelon
alert(likefruit.length) // 3
대표적인 유사 배열
arguments - 가변인자
alert(sum(1,2));
alert(sum(1,2,3));
function sum(){
let result =0;
for(let i=0 < arguments.length; i++ ){
result += arguments[i]
}
return result;
}
HTMLCollection
const htmlCollection = document.body.children
NodeList(dom접근)
const allDiv = document.querySelectorAll('div')
call or apply로 Array 의 Method 빌려오기
func.call(thisArg[, arg1[, arg2[, ...]]])
Array.prototype.forEach.call(likefruit, function(el) {
console.log(el);
});
[].forEach.call(likefruit, function(el) {
console.log(el);
});
유사 배열을 진짜 배열로 만들기
const realfruit = Array.from(likefruit);
realfruit.forEach((el)=>{
console.log(el);
})
// tomato, strawberry, watermelon