문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다.
배열을 리턴해야 합니다.
가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다.
가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다.
let output = removeExtremes(['a', 'b', 'c', 'def']); console.log(output); // --> ['a', 'b'] output = removeExtremes(['where', 'is', 'the', 'longest', 'word']); console.log(output); // --> ['where', 'the', 'word',]
.push()
를 이용하여 새로운 배열 만들기function removeExtremes(arr) {
let shortest = 20; // 비교해서 더 짧은 요소 길이를 shortest에 넣어주기
let longest = 0; // 비교해서 더 긴 요소 길이를 longest에 넣어주기
let shortestIdx = 0;
let longestIdx = 0;
let result = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i].length <= shortest) {
shortest = arr[i].length;
shortestIdx = i;
}
if (arr[i].length >= longest) {
longest = arr[i].length;
longestIdx = i;
}
}
for (let i = 0; i < arr.length; i++) {
if (i !== shortestIdx && i !== longestIdx) {
result.push(arr[i]);
}
}
return result;
}
.sort()
함수로 요소길이 기준으로 배열을 정렬하여 arr[0]과 arr[arr.length]를 잘라내고 .slice()
로 리턴
최소/최대 길이를 가진 요소가 여러개일 수 있기 떄문에 arr[0]과 arr[arr.length]로 접근할 수가 없음