문제

  • 주어진 단어의 문자열에서, 가장 짧은 단어의 길이를 반환한다.

풀이 01

function findShort(str) {
  let arr = str.split(' ');
  let min = arr[0];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i].length < min.length) {
      min = arr[i];
    }
  }
  return min.length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.

풀이 02

function findShort(str) {
  let arr = str.split(' ').sort((a, b) => a.length - b.length);
  return arr[0].length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • sort(): 배열의 element를 정렬한 후, 그 배열을 반환한다.

풀이 03

function findShort(str) {
  return str.split(' ').sort((a, b) => a.length - b.length)[0].length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2

풀이 04

function findShort(str) {
  return str.split(' ').sort((a, b) => b.length - a.length).pop().length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • pop(): 배열의 마지막 element를 제거하고, 그 element를 반환한다.

풀이 05

function findShort(str) {
  return Math.min(...str.split(' ').map(i => i.length));
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • Math.min(): 값이 가장 작은 수를 반환한다.
  • map(): 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.