배열의 내장 메소드 사용법

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. 총평

코드는 간략하게 써야 쓰는 나도 편하고 읽는 사람도 편하고 실행하는 컴퓨터도 편하다. 하지만 우선 실행되는 코드를 작성하는게 중요하니, 코드 작성 후 좀더 간략하게 할 수 있는 방법이 있는지도 함께 고려해보자.👏

Updated: