🍀 오늘의 날짜 : 23년 03월 14일
🍀 오늘의 주제 : 고차함수
🔖 28. 문자열의 요소를 갖는 배열을 입력 받아, 가장 긴 문자열의 길이를 리턴.
# 옳은 답
# 왜 reduce문 안의 if문에서 .length를 붙여서 return을 하면 'tr'의 길이를 출력 하는 것일까요?
let arr = ['one', 'two', 'tr'];
function getLong(arr) {
if (arr.length !== 0) {
return arr.reduce(function (acc, cur) {
if (acc.length >= cur.length) {
console.log('acc ' + acc.length + ' ' + acc); // acc 3 one
console.log('cur ' + cur.length + ' ' + cur); // cur 3 two
console.log('=========================');
return acc.length;
} else {
console.log('cur ' + cur.length + ' ' + cur); // cur 2 tr
console.log('acc ' + acc.length + ' ' + acc); // acc undefined 3
return cur.length;
}
});
} else {
return 0;
}
}
console.log(getLong(arr)); // 2
💡 의문 💡
console을 따로 돌려보았을 때, if문 첫 번째에서, one, two가 서로 비교하고 다음 if문으로 내려와서 tr이 return 됩니다.
왜 if문 조건을 걸었는데도 else 문까지 내려가는 걸까요??
🔖 32.이차원 배열 일차원 배열로 바꾸기 : concat(), [ ... spread ]
시도 방법 : 이중 filter 걸어서 무한 이차원 배열만 나오는 개미 지옥에 갇힘.
해결 방법 : reduce 에서 합병이나, 흩뿌려서 1차원 배열로 만든 다음 나중에 원하는 조건을 걸면 됨.
# 제가 푼 방법 처럼 늘여서 나열해도 되지만 두 번째 코드 처럼 한 줄로 깔끔하게 정리도 가능함.
# filter 는 거름 필터
# map 은 뽑아서 새로운 객체 생성
# reduce 는 차례로 누적
🌱 추가 공부 필요 내역
🔹메서드 내장 함수 (find, sort)
🔹
🌱 도움이 될 만한 사이트 추천
🔹
🔹
🌱 관련 정보 정리 글
🔹
🔹
'일상의 기록 > 🌷DAILY 회고록 : 코드스테이츠' 카테고리의 다른 글
[230316] CLASS 상속에서 spuer 참조 시 this를 써버리면..?Error..Error...왱알왱알.. (0) | 2023.03.16 |
---|---|
[230315] JS와 객체지향 프로그래밍 : 클래스와 인스턴스 (0) | 2023.03.15 |
[230313] Section 01 회고 (0) | 2023.03.13 |
[230310] 다수의 데이터 객체 DOM으로 부르기 + 페이지네이션 (0) | 2023.03.13 |
[230308] DOM _ script.js위치에 따른 차이점 / JS클릭시 화면 전환기법_[FAILED] (0) | 2023.03.08 |