Problem
- Given a string of words, return the length of the shortest word(s).
- 주어진 단어의 문자열에서, 가장 짧은 단어의 길이를 반환한다.
Solution 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()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
Solution 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를 정렬한 후, 그 배열을 반환한다.
Solution 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
Solution 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를 반환한다.
Solution 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에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.