회고/TIL

2023-05-23 TIL

yhjs1211 2023. 5. 23. 23:08

🔸 고차함수 ( Higher-Ordered Function )

 

문법을 공부하다보면 머리를 탁 치게되는 계기가 생긴다. 오늘이 바로 그런 날이었다.

 

아래 코드를 보자

 

let arr = ['🍌', '🍓', '🍇', '🍓'];

// '🍓' --> '🥝' 로 바꾸자

나는 이 과정을 당연히 for 문을 활용해 해결을 하려 했다. (물론 이것에 대한 문제는 없다)

 

arr.forEach((v,i)=>{
    if(v=='🍓')arr[i]='🥝';
    });

forEach 를 통해 일일히 값을 비교하며, 조건에 해당하는 값일 경우 값을 재할당 하는 방법도 있었지만 Map을 활용하니 더 깔끔해졌다.

 

let newArr = arr.map(v => v === '🍓' ? '🍏' : v);

map의 특성은 기존 배열을 수정하는 것이 아닌, 조건에 해당하는 값을 새로이 매칭시켜 '새로운' 배열로 반환을 한다는 것이다.

 

✨ 삼항 연산자의 존재유무를 까먹지 말고 써먹도록 하자. 코드가 깔끔해지는 마법