• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 array와 for문 문의

array와 for문 문의

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #58793

    빡대가리1
    참가자
    안녕하세요 선생님.
    동영상 강의가 아니라 개인적인 공부겸 만드는것인데 혹시 문의드려도 괜찮으실까요.
    대략적인 틀은 input에서 입력한 값을 받고 그것을 array안에 들어있는 값중 하나만 똑같으면
    다음으로 넘어가고, 값이 똑같은게 없으면 경고창 날리는 방식입니다.
    그래서 선생님 강의에 있는 array와 for문으로 하면 되겠거니 싶어서 그렇게 짜봤는데,
    원하는데로 나오지가 않네요;
    특히 조건문에 array의 마지막 값을 강조한 식을 썼는데도 잘 안됩니다.
    제 조건문에 무슨 문제가 있나요?
    
    (이미지)
    
    
    
    (스크립트)
    
    const loginForm = document.querySelector(".login-form");
    const submitButton = document.querySelector(".submit-button");
    const accountInput = document.querySelector("#account");
    const mapCodeInput = document.querySelector("#mapCode");
    let loginAccount = ["aaa", "bbb", "ccc", "ddd", "eee"];
    let mapLink = ["map-test.html", "map-test02.html"]
    /*
      1. input에서 입력한 value값이 위의 array안에 있는 값중 1개라도 일치하다면 addMapLink(); 함수실행.
      2. 그 외에 input에서 입력한 value값이 하나도 다 안맞으면 alert 뜸.(마지막에한번만)
      문제 1. 첫번째값 ("aaa")는 무조건 잘 되지만,
      두번째값부터 ("bbb" ~ "eee") 입력하면 alert가 뜸.
      문제 2. else 부분을
      else if(!accountInput.value == loginAccount[i]) 이걸로 바꾼 후 위의 array가 아닌
      다른 걸로 입력 시 alert가 뜨지 않음.
    */
    function loginCheck(){
      for (let i = 0; i < loginAccount.length; i++) {
        //문제 1
        // if (accountInput.value == loginAccount[i]) {
        //   addMapLink();
        //   return;
        // }else{
        //   alert('계정이 일치하지 않습니다.');
        //   return;
        // }
        //문제 2
        if (accountInput.value == loginAccount[i]) {
          addMapLink();
          return;
        }else if(!accountInput.value == loginAccount[loginAccount.length - 1]){
          alert('계정이 일치하지 않습니다.');
          return;
        }
      }
    }
    function addMapLink(){
      for (let i = 0; i < mapLink.length; i++) {
        if (mapCodeInput.value == mapLink[i]) {
          alert(mapCodeInput.value);
          return;
        }else{
          alert('코드가 일치하지 않습니다.');
          return;
        }
      }
    }
    loginForm.addEventListener("submit", function(event){
      event.preventDefault();
      loginCheck();
    });
    #58818

    codingapple
    키 마스터
    if (){} else {} 로 만들어놓으면 반복문 돌 때 마다 항상 if나 else 둘 중 하나는 무조건 실행되겠군요
    array자료에 뭐가 있나 찾고싶으면 .includes 쓰면 편합니다
    #58877

    빡대가리1
    참가자
     
    감사합니다 선생님 ㅠㅠㅠ 해결하였습니다 ㅠㅠ
     
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠