2014-12-07 3 views
-1

저는 JS에 익숙하지 않아서 사용자가 입력 상자에서 숫자를 검색하는 방법을 알아 내고 배열에 숫자가있는 사용자에게 자바 스크립트를 알리거나 배열. 나는 나의 피들 (Fiddle)에 대한 링크를 가지고 있는데, 문제는 코멘트의 아래쪽 절반에있는 기능이다.배열에서 검색하는 기능이 작동하지 않습니까?

http://jsfiddle.net/83r24j3j/3/ 

모든 도움을 주시면 감사하겠습니다. 고맙습니다.

(그리고 document.write을 사용하는 미리의 실례는, 나쁜 습관은 휴식하기 어렵다.)

+1

소문자 '기능'findNumber, N은 죄송합니다, 여기에 업데이트 된 바이올린을 http – danronmoon

+0

'findumber'에서 누락 된 자본 :! //jsfiddle.net/83r24j3j/5/ –

+1

다시'document.write' 용서할 수없는 것. 그 습관을 깬다! 초보자에게는 jQuery 기본 사항을 배우고'.html '을 사용하는 것이 쉬운 습관을 버리는 것이라고 생각합니다. –

답변

0

가 findNumber이 시도 ...

function findNumber() { 
    Query = parseInt(document.getElementById(Search).value, 10); 
    var index = NumberArray.indexOf(Query); 
    if (index > -1) { 
     alert(Query + " was found at position " + index); 
    } else { 
     alert(Query + " is not found in the array"); 
    } 
} 

먼저 쿼리를 얻기 위해 필요 값.

두 번째로 indexOf을 사용하면 훨씬 효율적입니다.

+1

'.indexOf()'를 사용하여 숫자 배열에서 DOM 요소를 찾는 것은 너무 잘 작동하지 않습니다. –

+0

완벽하게 작동합니다! 감사! 지금은 위대한 사악함을 저지르고 document.write를 사용하기 때문에 배열 값, 합계 및 평균에 대한 인쇄 된 값이 입력 상자에 인쇄되어 제거됩니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사! –

+1

@PhillipCharlesJackson : 검색 변수가 없습니다. 코드에서 숫자 배열의 요소를 찾고 있습니다. -1과 비교해서는 안됩니다. 이 코드에 관한 모든 것은 실패합니다. 왜 완벽하게 작동한다고 생각하니? –

0
var NumberArray = [5, 65, 02,9, 87, 65, 48, 6]; 

function findnumber() { 
    var Query = document.getElementById('s').value; 
    var f = false; 
    var i; 
    for (i = 0; i < NumberArray.length; i++) { 
     if (Query == NumberArray[i]) { 
      f = true; break; } 
    } 
    if(f) alert(Query + " was found at position " + i); else 
     alert(Query + "is not found in the array"); 
} 

Demo jsfiddle

0

편집 : Oups는 질문을 많이 편집 된! 이 질문에 대한 대답은 this revision입니다. 나는 문제를 해결하려고 노력하고있는 동안 질문 코드를 계속 지키려고 노력했다.


당신은 당신의 코드에서 몇 가지 실수가 : 당신이 "0"으로 숫자를 시작하면

  1. 를, 그것은 유효한 진수 값이어야합니다. 따라서 078을 피하십시오.
  2. findNumber 정의에 맞춤법 오류가 있습니다. (아래 참조)
  3. findNumber에서 일을 부적절한 방법으로 "기능"기능

에 쿼리의

  • 나쁜 전송 대
  • 기능이 시도 :

    var NumberArray = [5, 65, 02, 04, 05, 80, 90, 01, 46, 87, 05, 6, 20, 48, 056, 78, 9, 7, 88, 9, 87, 65, 48, 6, 54, 3, 51, 90, 95, 60, 100]; 
     
    
     
        document.write("These are all of the numbers in the array"); 
     
        document.write("<br>"); 
     
        document.write(NumberArray); 
     
        document.write("<hr>"); 
     
        var sum = 0; 
     
        for (var i = 0; i < NumberArray.length; i++) { 
     
         sum += Number(NumberArray[i]); 
     
         var average = sum/NumberArray.length; 
     
        } 
     
    
     
        document.write("This is the sum of the array"); 
     
        document.write("<br>"); 
     
        document.write(sum); 
     
        document.write("<hr>"); 
     
    
     
        document.write("This is the average of the array"); 
     
        document.write("<br>"); 
     
        document.write(average);  
     
    
     
        function findNumber(Query) { 
     
         for (i = 0; i < NumberArray.length; i++) { 
     
         if (Query == NumberArray[i]) { 
     
          alert(Query + " was found at position " + i); 
     
          return; 
     
         } 
     
         } 
     
         alert(Query + "is not found in the array"); 
     
        } 
     
    
     
    /* Not relevant here 
     
        var lookingFor = prompt("who to look for?"); 
     
        for (i = 0; i < people.length; i++) { 
     
         if (lookingFor == people[i]) { 
     
         alert(lookingFor + " was found at position " + i); 
     
         } 
     
        } 
     
    */
    <title> 
     
        Array Search Test 
     
    </title> 
     
    
     
    <body> 
     
        <input type="text" id="Search" /> 
     
        <button onclick="findNumber(document.getElementById('Search').value);">Search Array</button> 
     
        <hr /> 
     
        <script src="external.js"></script> 
     
    </body>

    초보자는 javascr ipt, 가능하면 가장 작은 코드부터 시작하여 복잡한 것을 시험 할 때 자주 테스트해야합니다. 콘솔에서 오류 메시지를 읽는 것을 잊지 마십시오.

    보조 노트로

    , 나는 다음과 같은 학습을 건의 할 것입니다 :

    1. 같은 책 읽기 '자바 스크립트 : 좋은 부품 "(더글러스 크록 포드에 의해)을 첫 번째.
    2. jQuery의 기초를 배우면 jQuery의 기본 사항을 알고 있다면 document.write를 쉽게 피하고 경고 할 수 있습니다 (jQuery는 필요하지 않음).
    3. 그런 다음, 당신은 더 깊이있는 것을 배우려고 노력할 것입니다.
  • 관련 문제