공부하는 남자   



  • Key log

  • 공부 하는 남자
    검색 하는 남자

  • Log in out

  • 관리자

  • 편집

  • 글 쓰기

  • Link
  • Home
  • 함수 와 배열에 반복문을 중첩 사용해 십이 간지 만들기

    2020. 3. 30. 19:47   코딩문자 배우기

    십이간지를 자바스크립트 모듈을 이용해 간단 하게 만들어 본다.

    예전에  배운걸 생각해 가면서 한번 직접 만들어 봐야 겠다.

    그렇게 머리를 짜고 짜내 면서 겨우 만들어 동작을 시켜 보았지만 화면에는 아무것도 보이지 않는다.

    아래는 처음으로 만든 스크립트 모듈의 구문이다.

    function get_arr(){
    return['갑','을','병','정','무','기','경','신','임','계'];
    }
    var free=get_arr();
    function get_memb(){
    return['자','축','인','묘','진','사','오','미','신','유','술','해'];
    }
    var name=get_memb();
    for(var i=0; i<free.length; i++){
    for(var k=0; k<name.length; k++){
    document.write(free[i]+name[k]+'<br/>');
    }document.write('</p>');
    }

    정상적으로 실행 할 경우 너무 길어 스크린샷으로 자른 이미지를 삽입 했다

    그런대로 별 문제점 없이 만든 모듈 이라 당연히 정상적으로 작동 할줄 알았는데 짜임새는 아무 문제가 없는데 사진처럼 이상 하게 실행이 되었다는 것이다.
    아무리 뜯어 봐도 짜임새에는 문제가 없다.
    왜 무슨 이유 인가?

    아무래도 별 문제는 없는것 같은데...

     
    될수 있으면 커닝 하지 않고 만들겠다는 고집을 접고 정상 동작 하는 모듈을 커닝 해 볼수 밬에 없는것 같다.

    아래는 정상 작동 되는 모듈의 스크립트 태그만 제거 한 것이다.

    function get_arrys(){
    return['갑','을','병','정','무','기','경','신','임','계'];
    }
    var arrys=get_arrys();
    function get_members(){
    return['자','축','인','묘','진','사','오','미','신','유','술','해'];
    }
    var members=get_members();
    for(var i=0; i<arrys.length; i++){
    for(var k=0; k<members.length; k++){
    document.write(arrys[i]+members[k]+'<br/>');
    }document.write('</p>');
    }

    위 의 두 구문을 비교 해 보면 알수 있듯이 짜임새 에는 아무 문제가 없음을 알수 있다.

    단지 함수 명 get_arr을 get_arrys와 get_memb를 get_members로 고치고

    변수var free= get_arr 는 var arrys=get_arrys 와

    var name=get_memb 에서 var  members =get_members 로 바꾸고 for문에 바뀐 변수를 대입 해주니 정상 작동이 되었다.

    그래서 확실 해 진 것 은사용자가 마음대로 정의 할수 없도록 구조화 시켜 버린 구문은 사용자 마음대로 지정 할수 없다는 걸 알았다.

    예를 들어 get_members 를 get-members 로 _  아래쪽 바를 사용 해야 하는 데  ㅡ 중간 바를 사용 하는 것 만으로도 작동이 되지 않는 다는 것이다.

    너무 심하게 구조화되므로 사용자 정의가 확장이 되지 않는 다는 짜증이 팍 난다는 것이다.

     

    별것 아닌 것으로 너무 많은 시간을 허비 해 버렸다.

    머리가띵하다. 오늘은  이쯤 에서 마쳐야 겠다.

     
    T,back:     Comment: