알고리즘 - js 함수들 개념

송인성·2021년 9월 26일
0

forEach / map / filter / reduce

  • forEach
    forEach는 for문과 크게 다르지 않다.
	cosnt arr = [10,11,12,13,14,15];
    
    arr.forEach((item)=>{
    	console.log(item);
    })
    
    //위와 같은 for문의 개념
    for(let i = 0; i < arr.length; i++){
    	console.log(arr[i]);
    }
    

output
10
11
12
13
14
15

  • map
	cosnt arr = [10,11,12,13,14,15];
    
    const result = arr.map((item)=>{
		return item % 2 === 0;
    })
	
    console.log("result: ",result);
    //output
	result: [ true, false, true, false, true, false ]

map에서 알아야할 핵심은 return하는 것은 배열이고 배열을 돌리는 배열의 length와 같은 length를 return한다는 것이 포인트이다.

map과 반대되는 개념이 filter이다.

  • filter
	cosnt arr = [10,11,12,13,14,15];
    
    const result = arr.filter((item)=>{
		return item % 2 === 0;
    })
	
    console.log("result: ",result);
    //output
	result: [ 10, 12, 14 ]

위의 output과 같이 내가 filter한 값만 배열에 return 되어 나온다.

-reduce
reduce는 배열을 return하는 개념이 아니라 값을 return 하는 개념이다.
즉,

	arr.reduce((result,arrItem)=>{
    	//reduce함수 끝부분에 0을 넣어줬다 이것은 x의 초기값과 같다.
        //result = 0;
        //arrItem의 첫번째 값에는 arr배열의 첫번재 값이 들어온다.
    	return result+arrItem;
        //return을 한번 하고나면 이제 result의 값은 0 + 10이 되어서
        //result = 10이고
        //arrItem = 배열의 두번째 값인 11이온다.
        //return result + arrItem = 21이되고 result는 21을 인자로 받고 arrItem는 12를 받는 방식이다.
    },0);

reduce는 알고리즘에서 주로 배열들의 sum할때 많이 사용하고 큰값을 찾는것등도 할순 있지만 이럴때는 Math.max(...arr);와 같은것을 사용한다!

profile
코드 한줄에 의미를 생각할 수 있는 개발자가 되어 가는중... 🧑🏻‍💻

0개의 댓글