[JS] 반복문
2020. 11. 11. 19:44ㆍ프론트엔드/JAVASCRIPT
728x90
1. for loop
가장 일반적인 for문
var arr = [];
for(var i=0; i<10; i++){
console.log(arr[i]);
};
- 가장 빠르고 단순함(효율적)
- 모든 자료형에 대해 사용이 가능
- 중간에 loop 건너뛰기나 종료가 가능함(continue, break)
- 반복범위 컨트롤이 가능함
- 변수를 활용할 수 있음
2. forEach
배열.forEach(요소,인덱스,배열)
var arr = ['가','나','다'];
arr.forEach(function(v,i,arr){
console.log('v : ' + v);
console.log('i : ' + i);
console.log('arr : '+ arr);
});
- 빠른편
- Array객체에서 사용이 가능함
- 일반 for문보다 가독성이 좋고, 객체형을 다루기 쉬움
- for문과 다르게 중간에 끊을 방법이 없음(return으로 skip가능)
- return값을 갖지 못함
3. filter
var arr = [1,2,3,4,5];
var newArr = arr.filter(function(v){
return v % 2 == 0;
});
console.log('newArr : ' + newArr);
var distances = [
{from:'Seoul', to:'Jejudo', distance:23451},
{from:'Busan', to:'Daegu', distance:6457},
{from:'Daejeon', to:'Incheon', distance:233},
];
var filterDistances = distances.filter(function(item){
return item.distance < 1000;
});
console.log('filterDistances : ' +filterDistances);
filter 메서드는 빈 요소를 반환하지 않는다는 것이 특징인데, 이를 이용하면 유용하게 쓸 수 있음
var arr = [0,,,1,,,,,2,,,,3];
var newArr1 = arr.filter(function(){return true;}); //[0,1,2,3]
var newArr2 = arr.filter(function(e){return e;});//[1,2,3]
- 빠른편
- Array객체에서 사용 가능
- chainable
- 빈 배열 요소를 반환하지 않음
- 대용량 배열 처리시 메모리 overflow 가능성이 있음
- return값은 true/false이며, 요소를 반환함
4. map
map은 기본적으로 filter와 문법은 똑같음
filter는 return값으로 true/flase만 쓸 수 있고 요소를 반환하지만,
map은 요소가 아닌 새로운 값을 만들어서 return할 수 있음
var arr = [1,2,3,4,5];
var newArr = arr.map(function(v,i,arr){
return v+1;
}); //[2,3,4,5,6]
- 빠른편
- Array객체에서 사용이 가능함
- chainable
- 대용량 배열 처리시 overflow 가능성이 있음
- return 값 자체를 반환함
5. reduce
배열.reduce(배열누적합, 원소, 인덱스, 배열)
var arr = [1,2,3,4,5];
var newArr = arr.reduce(function(accumulator, v, i, arr){
console.log(accumulator); //1, 3, 6, 10
return accumulator + v;
}); //15
reduce의 가장 큰 첫번째 특징은 첫번째 인자인 accumulator인데, accumulator는 return값을 누적하는데, 계속해서 전달받아서 사용 할 수 있음
두번째 특징은 accumulator의 초기값을 설정할 수 있다는 것인데, optional하며 생략시에는 첫번째 return값이 됨
var arr = [1,2,3,4,5]
var newArr = arr.reduce(function(accumulator, v, i, arr){
return accumulator + v;
},100); //115
728x90
'프론트엔드 > JAVASCRIPT' 카테고리의 다른 글
[JS] 자바스크립트 빈값 체크방법 (0) | 2020.12.14 |
---|---|
[JS] 문서 로드시점(onload,$(document).ready()) (0) | 2020.11.19 |
[JS] excel 다운로드 (0) | 2020.11.08 |
[JS] 헤더 고정 스크롤 구현 (0) | 2020.11.07 |
[JS 객체(Object) (0) | 2020.06.18 |