配列の組み込み方法

3274 ワード

配列を受信し、配列の中で最も短い文字列要素を返す関数です.
重複文(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  //누적값을 리턴한다.
    } 
  });
}