Javascript Test01

05. 2가 아닌 값을 만나게 되면 value를 1씩 증가시켜주는 문제입니다.

{
    //1. for을 통해 i 값을 1씩 증가시켜 a배열의 i번째 값을 가져옵니다.
    //2. 그 i번째의 값이 2가 아니라면(!=2)
    //3. value의 값을 1씩 증가(value++)시킵니다.
    //4. a 배열 속 2가 아닌것은 [3,4,5,6,7,3,3] 총 7개 이므로 value에 1씩 7번을 더해주게 됩니다.
    //5. 그래서 답은 "7"
    
    function func(){
        let a = [2,3,2,4,5,6,7,2,3,3,2];
        let value = 0;
        for(i=0; i<a.length; i++){
            if(a[i]!=2){
                value++;
            }
        }
        document.write(value);
    }
    func();
}

06. i의 값이 8이하가 될때까지 1씩 증가시켜주고 그 값을 j에 넣어준뒤 마지막에 i와 j값을 더해준 값을 출력하는 문제입니다.

{
    //1. for를 통해 i의 값을 1씩 증가시킵니다.
    //2. i의 값은 j에 더해줍니다.
    //3. 그렇게 i의 값이 9가 되어지면 j에 더해줌을 멈춥니다.
    //4. j[1+2+3+4+5+6+7+8]+i[9] 를 계신한 결과를 document.write를 통해 출력합니다.
    //5. 정답은 45
    
    function func(){
        let i, j = 0;

        for(i=0; i<=8; i++){
            j += i;
        }
        document.write(j+i);
    }
    func()   
}

09. while을 통해 a의 값이 10미만이 될때가지 a를 1씩 더해 a의 값에 2를 나눈 나머지 값이 1이면 건너뛰고 이외에는 sum에 a의 현재값을 더한 후 sum을 출력하는 문제입니다.

{
    //1. while을 통해 a의 값이 10 미만(a<10)이 될때까지 하단의 2~4을 반복해줍니다.
//2. a의 값을 1씩 더해주고(a++)
//3. 만약 a의 값에 2를 나눈 나머지가 1과 같으면(a%2==1) continue를 통해 다시 처음으로 돌아갑니다.
//4. a의 값에 2를 나눈 나머지가 1이 안나왔다면 현재 a의 값을 sum에 더해줍니다.
//5. a가 9에 도달 했을때에는 a<10 조건에 부합하므로 a++를 해줘 a를 10으로 만들고 마지막으로 a의 값 10을 sum에 더해줍니다. //6. a가 10이 되었으니 while의 조건에 부합하지 않으니 document.write(sum)을 출력하게 됩니다.
//7. 답은 30 function func() { let a = 0, sum = 0; while (a < 10) { a++; if (a % 2 == 1) continue; sum += a; } document.write(sum); } func(); }

10. while의 조건에 부합할때까지 sum에 i값을 if 조건에따라 더해주는것을 반복해줍니다.

{
    //1. while의 조건이 0(false)였기 때문에
    //2. 정답은 false
    //3. 대어가 잡혔네요
    
    function func(){
        let i = 0, sum = 0;
        while (0) {
            i++;
            if (i > 10) break;
            if (i % 5 == 0) continue;
            sum += i;
        }
        document.write(sum);
    }
    func()    
}

14. for of를 통해 x의 값(webstoryboy)에서 w가 아닌것은 "#"으로 대체해 출력하는 문제입니다.

{
    //1. str에 "webstoryboy" 저장 후 document.write를 통해 함수 func(str=매개변수)를 호출합니다.
//2. 이 문제에 만들어진 함수명 func 속에서만 활용할 매개변수 이름은 s(하단 func(str)로 인해 s에는 webstoryboy가 저장되어있음)로 지정 후
//3. for of를 이용해 s의 내용을 let x에 저장시킨 뒤
//4. x의 값 중 t가 아닌 문자열을 마다 answer값을 1씩 더해준 뒤(answer++)
//5. func함수 실행시 반환되어질 값은 answer의 값을 반환(return answer; = 10)
//6. 답은 10 function func(s){ let answer = ""; for(let x of s){ if(x != 'w') answer+= '#'; else answer += x; } return(answer); } let str = "webstoryboy" document.write(func(str)); }

16. for of를 통해 x의 값 중 대문자인것은 소문자로 바꾸고 이외에는 대문자로 바꾸는 문제입니다.

{
    //1. document.write를 통해 func("webStorBOY10"=매개변수)를 실행시킵니다.
    //2. 함수의 이름은 func로 설정 후 매개변수의 이름은 s로 설정합니다.
//3. s의 값은 for of 를 통해 let x에 대입 후 x("webStorBOY10")의 값 중 x를 대문자로 변환한것과 같은 문자가 있다면 //4. 대문자는 소문자로 이외에는 소문자는 대문자로 변환 합니다.
//5. return answer를 통해 함수 func를 실행 시킬때에는 answer의 값을 출력시킵니다. //6. 답은 "WEBsTORboy10" function func(s) { let answer = ''; for (let x of s) { if (x === x.toUpperCase()) { answer += x.toLowerCase(); } else { answer += x.toUpperCase(); } } return answer; } document.write(func("webStorBOY10")) }

18. filter를 이용해 원하는 요소만 가져와 그 값을 가지고 어느것을 answer에 대입 할지 결정한뒤 함수의 값을 answer의 값으로 반환하는 문제입니다.

{
    //1. 매개변수를 통한 arr([1,2,3,4,5])/divisor(2)의 값을 함수 solution에 가져온뒤
//2. filter를 이용하여 요소와 divisor(2)를 나누었을때 나머지가 영이 되는것만 찾아 상수 div에 넣은 뒤
//3. answer에 대입할 값을 결정하기 위해서 div의 길이(2)가 0보다 클때
//4. sort의 값에 [div의 값을 순서대로 정렬 후 a-b를 한 값을 할건지] 아니면 [-1로 설정할건지] 결정 후 answer을 반환하는 문제입니다. function solution(arr, divisor) { var answer = []; const div = arr.filter((el) => el % divisor == 0); answer = div.length > 0 ? div.sort((a, b) => a - b) : [-1]; return answer; } document.write(solution([1, 2, 3, 4, 5], 2)); }

19. includes를 통해 배열에 1씩 증가되는 i의 값중 배열과 일치하지 않는 값은 answer에 더하는 문제.

{
    //1. solution([1,2,3,4,5,6,7,8,0]=매개변수)을 출력시키기 위해
    //2. solution 함수에는 매개변수 이름을 numbers로 설정하고
    //3. for를 이용해 i의 값을 1씩 증가시켜 numbers 값에 i값이 포함되어있지 않으면 i의 값을 answer에 저장
    //4. numbers의 값은 5와 9가 없기 때문에 i가 10이 될때까지 5와 9 이 두가지만 answer에 더할 수 있으므로
    //5. 답은 14
    
    function solution(numbers){
        let answer = 0;
        for(let i=0; i<10; i++){
            if(!numbers.includes(i)){
                answer += i;
            }
        }
        return answer;
    }
    document.write(solution([1,2,3,4,5,6,7,8,0]));
}

20. solution의 매개변수를 통해 1씩 증가시킨 i의 값과 매개변수(10)을 나눴을때 나머지가 1이 나오게 되면 i의 값을 리턴시켜주는 문제입니다.

{
    //1. document.write로 인해 solution의 매개변수에는 10이 설정되었습니다.
    //2. 함수 이름 solution의 매개변수의 이름은 n으로 설정 후
    //3. for를 통해 i의 값이 n(10) 미만일때까지 i의 값을 1씩 증가시킵니다.
    //4. if를 통해 만약 n(10)과 i(1씩 증가된 값)을 나눴을때 나머지가 1이 나오게 된다면
    //5. 현재값 i로 반환합니다(return i)
    //6. i의 값이 3이 되는순간 return i가 실행되어지기에 답은 3
    
    function solution(numbers){
        let answer = 0;
        for(let i=0; i<10; i++){
            if(!numbers.includes(i)){
                answer += i;
            }
        }
        return answer;
    }
    document.write(solution([1,2,3,4,5,6,7,8,0]));
}