⚡ 개념 정리하기 !

  1. 콤프 회원 한 명의 정보를 저장하는 변수를 만들려면 어떻게 해야할까요?

    1. 입력되는 정보는 이름, 나이, 학과, 그리고 1학년인지의 여부입니다.

      boolean, integer, string 을 모두 사용하세요!

    2. object 개념을 활용하세요! (C로 치면 struct나 array, Python으로 치면 dict나 list 등)

    const user={
    	name: "duhoe", //이름
    	age: 23, //나이
    	department: "computer science", //학과
    	isFreshman: false, //1학년 여부
    }
    
  2. 1번에서 만든 변수로 여러 사람의 정보를 담으려면 어떻게 해야할까요?

    1. objectarray의 개념을 활용하세요!

      Hint❗ 콤프 사람들에게 0부터 15까지 한명씩 번호를 붙인다고 가정해봅시다!

    ㄴ 코드를 작성하지 않고 모형도를 그리기만 해도 됩니다!

    const user0={
    	name: "duhoe", //이름
    	age: 23, //나이
    	department: "computer science", //학과
    	isFreshman: false, //1학년 여부
    };
    const user1={
    ...
    };
    const user2={
    ...
    };
    const user3={
    ...
    };
    .
    .
    .
    const user15={
    };
    
    const comp=[user0, user1, ... ,user15]; 
    

    또한 아래의 코드 또한 가능할 것으로 보인다.

    const comp = [
    { name: "신예성", age: 21, department: "~" ,isFreshman: true },
    { name: "..." , ... },
    { name: "..." , ... },
    ...
    ];
    
  3. 2번에서 만든 변수를 반환하는 함수를 작성한다면, 어떻게 작성해볼 수 있을까요?

    ㄴ 3번은 정답이 없습니다! 고민하면서 실력이 늘 거에요 ㅎㅎ

    comp[]에서 n번째 회원(0≤n≤15)을 리턴하는 함수는 다음과 같이 나타낼 수 있었다.

    const comp=[user0, user1, ... user15];
    
    function findUsers(userNumber, comp){
    		return comp[userNumner];
    }
    
    function findUsers(userNumber){
    	const comp = [
    		 { name: "신예성", age: 21, department: "~" ,isFreshman: true },
    		 { name: "..." , ... },
    		 { name: "..." , ... },
    	...
    	];
    	return comp[userNumber];
    }
    
    const user = findUsers(userNumber);
    

⚡ 토론해보아요 !

  1. 두 수가 주어졌을 때, 두 값 중 큰 값, 작은 값, 그리고 일치 여부를 각각 반환하려면 어떻게 해야할까요? (단, 하나의 객체 내에서 모두 처리하도록 해요)

      Hint❗ 노마드 코더 강의 중 calculator 변수 선언 내용을 참고하세요!
    

    다음과 같은 객체 calculator을 생각해보았다.

    const calculator={
    	bigger:function(a,b){
    	if(a>b){
    		return a; //a가 더 크다면 a 반환
    	}
    	else if(a<b){
    		return b //b가 더 크다면 b 반환
    	}
    		return true; //같다면 ture 반환
    	},
    	smaller:function(a,b){
    	if(a<b){
    		return a; //a가 더 작다면 a반환
    	}
    	else if(a>b){
    		return b; //b가 더 작다면 b반환
    	}
    		return true; //같다면 true 반환
    	},
    };
    

    또한 하나의 객체에 큰 값, 작은 값, 일치 여부를 모두 담아 반환하는 함수도 생각해 보았다.

    function compare(num1, num2) {
    	const compareresult = {};
    
    	if (num1 > num2) {
    	  compareresult.greater = num1;
    	  compareresult.smaller = num2;
    		compareresult.equal = false;
    	}
      else if (num1 < num2) {
        compareresult.greater = num2;
        compareresult.smaller = num1;
    		compareresult.equal = false;
    	}
      else {
        compareresult.equal = true;
    	}
    
    	return compareresult;
    }
    
  2. 값이 두 개가 아니라 세 개가 주어졌다면 어떻게 해결해야 할까요?

    ㄴ 이 문제는 웹 개발 보다는 논리적 사고를 중점으로 보는 문제에요!

    조원들과 상의해보세요😃

    세 개의 값이 배열 array에 저장되어 있다고 했을 때, 다음과 같이 반복문과 조건문을 사용하여 최대값(또는 최소값)을 구해낼 수 있다. 배열에 세 개보다 더 많은 값이 들어있다고 해도 calculator객체의 코드를 수정할 필요가 없다는 점이 장점이다.

    배열명.length는 배열의 길이를 반환하기 때문에 배열 관련 상황에서 자주 사용된다.

    const calculator={
        bigger:function(array){
            let max=array[0];
           for(let i=0;i<array.length;i++){
                if(array[i]>max){max=array[i];} //기존 최대값보다 더 큰 값이 나타나면 값을 갱신함.
           }
           return max;
        },  
    };
    const array=[1,4,7];
    
    console.log(calculator.bigger(array));