카테고리 없음

21-12-7 학원 복습 내용

JJ_hyun 2021. 12. 8. 13:50
  • for in 반복문
    //for ~ in ~ 반복문
        var myObj = {item1 : 1, item2: 2}; -> 객체

        console.log(myObj["item2"]);  // 2 

        for (var item in myObj){                        -> item 이 변수는 객체를 담는다 이런 느낌.  
            console.log(item); // item1 , item2
            console.log(myObj[item]); // 1 , 2    -> [ ]를 통해 객체의 값을 출력함.
        }
        var myArr = [1,2]
        for (let i = 0; i < 2; i++){
            console.log(myArr[i]);  // 1 , 2   -> 마찬가지로, myArr 에 [ ] 를 사용해서 값을 뽑아냄.
        }
 
        var myName = {
            name : '양현준' ,
            age : '28'
        };

        for(var who in myName){
            console.log(`${who} ${myName[who]}`); // name 양현준, age 28 로 출력됨.
            // console.log(myName[who]);
        }
 

for (변수 in 객체) { 반복적으로 실행하고자 하는 실행문 ; }

상속된 열거가능한 속성들을 포함하여 (1)객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복합니다....?

1. 상속된 열거 가능한 속성 -> 이미 선언된 객체(변수를 객체로 저장해야 함)

2. (1)객체는 상속되는 이미 선언된 객체, 그리고 문자열로 지정된 키가 모든 열거 가능한 속성을 반복한다. 

,

,

 

문제...! 

Q. 나루토는 80점 사스케는 90점 사쿠라는 100점 쵸지는 70점 사이는 85점을 받았다.

90점 이상은 합격으로, 이하는 불합격으로 출력하는 코드를 입력할것. 

 

        var all = {나루토:80, 사스케:90, 사쿠라:100, 쵸지:70, 사이:85};
        for(let score in all){
            if (all[score] >= 90){   
if문의 조건부분에서 처음 작성했을땐 score >= 90 으로 생각했는데 전부 불합격이 나왔다. 생각해보니 score의 값으로 접근을 했어야 했는데 생각이 짧았다. 
                console.log(score + '는 합격 입니다.')
console.log(`${score} + "는 합격 입니다."`) 로 작성해도 무방함.
            }else{
                console.log(score + '는 불합격 입니다.')
            };
        }
 

for in 문 밖에 객체로 선언된 변수의 존재

for ( A in 객체 ){

 

}

A 는 순환된 객체를 나타내는 변수 일껄..?

값을 뽑아내고 싶으면 console.log(객체[A])

키를 뽑아내고 싶으면 console.log(객체)

 

  • 내장함수
        console.log(Math.PI); // 3.141592653589793
        console.log(Math.ceil(0.5)); // 1
        console.log(Math.max(1, 3, 4)); // 4
        console.log(Math.min(1, 3, 4)); // 1
        console.log(Math.pow(3, 2)); // 9
        console.log(Math.random()); // random number
        console.log(Math.floor(Math.random()*10)); // random number * 10
cile =올림
round = 반올림
floor = 내림
max = 최대값
min = 최소값
pow = (값, 제곱값)
random = 무작위 수 ( 0 < random < 1 ) 
        console.log(Math.floor(Math.random()*10+1));
곱하기로 최대값을 지정할 수 있다. (random number . random) + 1
뒤에 덧샘을 한다면 시작하는 수도 만들 수 있다. 
- 원래 최소값은 0 이였으나 1을 더함으로 최소값은 1이 되며, 
최대값은 9 였으나 1 을 더해서 10이 된다
 
이 식은 최대값과 최소값 사이의 무작위 수를 뽑아내는 식이다.

 

        function myRandom (min, max){
         return Math.floor(Math.random()*(max-min)+min);
        }

        console.log(myRandom(1, 13));
 

수업들을땐 그냥 그렇구나~ 하고 넘어갔는데 막상 복습하려니 먼가 이해가 안간다...

다시 여쭤봐야겠다...

 

로또번호 추출하기 ( 개인적으로 제일 어려웠고, 들으면서도 이해가 잘 되지 않았음. )

            var result = [];  // 6자리 숫자를 받아야 하는 빈 배열을 result로 선언함.

            function lotto(){
                while (  result.length < 6 ){  // 반복의 조건이 result의 길이가 6보다 크면 안된다 ( 6자리로 만들겠다. )
                    var isGot = false; // 중복을 확인하기 위해 선언한 변수
                    var item = myRandom(1, 46);  // 1 ~ 45까지의 랜덤한 숫자를 나타내줄 변수
                    result.forEach(element =>{  //forEach()는 배열 순회 전용 메서드, result 배열의 원소가 ~ 
                        if(element === item){ // 만약 item과 같다면 ~ 
                            isGot = true; // isGot 변수는 참이 된다.
                        }
                    });
                    if(!isGot){ // 만약 isGot 변수가 부정이라면
                        result.push(item); // result 배열에 item을 넣겠다.
                    }
                }
            }
            lotto(); // lotto 함수를 실행한다.
            console.log(result); // result 를 콘솔로 찍어본다. 
작성된 식을 보면서 대략 해석은 되지만,,, 다시 작성해 보세요 하면 아직 잘 못하겠다. 
6자리를 뽑아내는 것은 쉽지만!! 중복확인에서 코드를 못쓰겠다. 
오늘은 이걸 좀 더 연습해 봐야겠다 . . .