배열을 입력받아 배열에서 가장 짧은 길이를 가진 문자열 요소를 리턴하는 함수.
반복문(for, while) 사용은 금지됩니다.
같은 길이의 요소가 있다면 배열의 앞쪽에 있는 요소를 리턴해야 합니다.
배열에는 문자열 외에 다른 요소들이 있을 수 있습니다.
빈 배열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.
주어진 배열에 문자열이 없는 경우, 빈 문자열을 리턴해야 합니다.
function findShortestWord(arr) {
//변수 선언, 콜백함수를 통과하는 요소들을 모아 새로운배열 반환. 반환된 배열을 변수에 할당
let filterd = arr.filter(el => {
return typeof el === 'string'
})// 문자열요소만을 모아 구성된 새로운배열을 반환한다.
if(filterd.length === 0) {
return '';
}// 배열의 길이가 0이라면 빈배열이라는 뜻으로 빈문자열을 리턴한다.
//문자열요소로 이루어진 배열을 reduce메소드를 이용해 하나의 값을 반환
return filterd.reduce((acc, cur) => {
//누적값(문자열의 길이)이 현재값(문자열의 길이)보다 크다면
if(acc.length > cur.length){
return cur // 현재값을 리턴
} else { //누적값이 현재값보다 작다면
return acc //누적값을 리턴한다.
}
});
}