주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성해주세요.
❌ 처음 reduce를 사용 하였을 땐 return을 삼항연산자 안에서 사용하였다.
// 잘못된 삼항연산자의 return 방식
function find_longest_word(arr) {
arr.reduce((a,b) => a.length > b.length ? return a : return b
}
⭕️ mdn검색 결과, return은 통채로 시켜야 한다는 것!
function find_longest_word(arr) {
return(arr.reduce((a,b) => a.length > b.length ? a : b))
}
⭕️ 삼항연산자의 return
function find_longest_word(arr) {
return ((num === 5) ? 'ok' : 'false'))
}
console.log(find_longest_word(5)) // ok
삼항 조건 연산자 표현식은 표현식인 문으로 값으로 사용 가능하지만
if...else 문은 값처럼 사용 불가
=> 값은 바로 return이나 변수에 넣어주는 게 가능한 것
css도 어려웠지만 바닐라 js로 작업하기란 너무 어려웠다.
그래도 할 수 있는 만큼 최대한 해보려고 하였으나, 3일간 코딩고양이가되어 어떻게든 구현을 해야겠다는 생각에 사로잡히다보니, 욕심이 화를 부른것 같다 ㅠ
결국 리팩토링.. 어디부터 손을 대야할 지 모르는 사태가 되었다.
(새로 만든 돔에 접근하고하는 코드들이 많아지면서 복잡해지기까지...)
완전 만족할 만한 결과물은 아니지만 곧 깃헙에 퍼블해서 리액트로 만든것과 비교해봐야지 :)
++ 리액트 인트로 강의좀 들어보니 '반복되는 컨텐츠 내부의 각각 돔 선택이 좀 더 쉬울 순 없을까?' 라는 고민은 리액트가 쉽게 해결 해 줄 것 같다.
하루에 최소 2챕터씩 모던자바스크립트 정독하기 시작했는데,
딱, 해당 챕터를 읽을때 겪은 이 말이 너무 와닿았다.
컴퓨터가 이해하는 코드는 어떤 바보도 쓸 수 있다.
하지만 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 쓴다.
- 마틴 파울러 Martin Fowler, <리팩토링의 저자>-
이 글을 보고 난 이렇게 생각 했다.
컴퓨터가 이해하는 코드는 오류만 안나면 된다는것? 왜냐, 이해했으니 실행시켜주겠지.
하지만 우린 사람이니, 유지보수 측면에서도 누구나 봐도 '아 이게 이거구나?' 할 수 있는 좋은 코드를 쓰고 싶다.
뭐든지 경험해봐야 깨달음이 있듯이, 이또한 조금씩 조금씩 고쳐 나가 지도록 부딪혀보자!!!
공부하며 정리&기록하는 ._. 씅로그