문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다.
function removeExtremes(arr) {
// TODO: 여기에 코드를 작성합니다.
let shortestLen = 20;
let longestLen = 0;
let shortestIdx = 0;
let longestIdx = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i].length >= longestLen) {
longestLen = arr[i].length;
longestIdx = i;
}
if (arr[i].length <= shortestLen) {
shortestLen = arr[i].length;
shortestIdx = i;
}
}
let result = [];
for (let i = 0; i < arr.length; i++) {
if (i !== shortestIdx && i !== longestIdx) {
result.push(arr[i]);
}
}
return result;
}
function removeExtremes(arr) {
// 가장 짧은 길이를 찾아서 그것의 인덱스 값을 찾는다
//인덱스 값을 찾아서 그것을 제외하고 하나씩 푸쉬한다.
let shortestLth = 20; // 가장 짧은 길이를 찾기위한 수
let longestLth = 0; // 가장 긴 길이를 찾기위한 수
let shortestIdx; // 가장 짧은 길이문자열의 인덱스값을 저장해줄 변수
let longestIdx // 가장 긴 길이문자열의 인덱스값을 저장해줄 변수
for(let i = 0; i < arr.length; i++){
if(shortestLth >= arr[i].length){ // shortestLth에 최대값을 넣어놓고 줄여나간다.
shortestLth = arr[i].length; // 만약 arr[i].length가 10이면 shortestLth가 10이 되서 다시 반복
shortestIdx = i; // 끝까지 반복하다보면 shortestLth에는 가장 짧은 길이(수), shortestIdx에는 그 수에 해당하는 인덱스가 저장된다.
}
if(longestLth <= arr[i].length){ //짧은것 찾는것과 동일한 방법으로 긴 것을 찾는다.
longestLth = arr[i].length;
longestIdx = i;
}
}
let result = []; //그리고 빈 배열을 하나 만들어서
for(let i = 0; i < arr.length; i++){
if(i !== shortestIdx && i !== longestIdx){ //아까 찾은 문자열의 인덱스 값만 제외하고 result 배열에 넣어준다.
result.push(arr[i]);
}
}
return result; //끝
}