배열의 내장 메소드 사용법
1. 아래 문제를 풀어보겠다.
문제) 배열을 입력받아, 배열에서 가장 짧은 길이를 가진 문자열 요소를 리턴하라.
입출력 예시)let output = findShortestWord([4, 'two', 2, 'three']);
console.log(output); // --> 'two'
2. 풀어본 문제는 아래와 같다. 🥴
function findShortestWord(arr) {
let stringFilter = arr.filter(function(string){
if(typeof(string)==='string'){
return string
} //배열 요소중 문자열만 필터하기.
})
if(stringFilter.length ===0){
return ''
} // 빈배열을 입력받은 경우 빈문자열 리턴하기.
let most = stringFilter.reduce(function(acc, cur){
if( cur.length >= acc.length){
return acc
} // 현재값 길이 > 축척값 길이 -> 축적값리턴
else { // 아니라면 현재값 출력
return cur;
}
})
return most
}
3. 모범 답안을 참고해서 배운 점 🤭
function findShortestWord(arr) {
const onlyStrings = arr.filter(function (el) {
return typeof el === 'string';
}); // return 할때 조건을 걸어 if 문 사용없이
//조건에 맞는 값만 return 할수 있다
//👍코드가 더 간략해지고 깔끔해진다!
if (onlyStrings.length === 0) {
return '';
}
return onlyStrings.reduce(function (acc, cur) {
if (acc.length <= cur.length) {
return acc;
} else {
return cur;
} //2번에서 나는 변수를 설정해서 reduce 한 값을 할당해주었는데
});//모범답안에서는 바로 Return 후 reduce 를 진행하였다.
}
4. 총평
코드는 간략하게 써야 쓰는 나도 편하고 읽는 사람도 편하고 실행하는 컴퓨터도 편하다.
하지만 우선 실행되는 코드를 작성하는게 중요하니, 코드 작성 후 좀더 간략하게 할 수 있는
방법이 있는지도 함께 고려해보자.👏