2014-03-31 5 views
-1

안녕하세요 배열을하고 여기에서 잘못된 것은 내 코드자바 스크립트는 최대 또는 최소 값 또는 배열을 얻을 어차피

var repeat, studentArr = [], markArr = []; 
while (repeat !== 'n' && repeat !== 'N'){ 
    studentArr.push(prompt("Enter Student Name: ")); 
    markArr.push(parseInt (prompt("Enter Student mark: "))); 
    repeat = prompt ("Do you want to enter another student: y/n"); 
} 

function min (markArr){ 
    var min = Number.Max_Value; 
    for(var i = 0; i < markArr.length; i++){ 
     if(number(markArr[i]) < min) 
      min = number(markArr[i]); 
    } 
    return markArr; 
} 
var smallest = min(markArr); 

function max (markArr){ 
    var max = Number.Max_Value; 
    for(var i = 0; i > markArr.length; i++){ 
     if(number(markArr[i]) < max) 
      max = number(markArr[i]); 
    } 
    return markArr; 
} 
var largest = max(markArr); 

    document.write(largest); 
+1

함수가 배열이 아닌 배열을 반환합니다. –

+0

여기서'number' 함수를 정의 했습니까? 'ReferenceError : number is not'' [방법 알아보기] (http://www.creativebloq.com/javascript/javascript-debugging-beginners-3122820) [** debug ** JavaScript] (https://developers.google .com/chrome-developer-tools/docs/javascript- 디버깅). –

+1

이 함수에서 비교의 의미를 매우 조심스럽게 살펴보십시오.'function max (markArr)' –

답변

0

입니다 나도 몰라의 난 최소 및 최대 값을 얻을 수가 어차피 당신은을 확장 할 수 자바 스크립트에서, 샘플에 대한 Array 유형이 같은

Array.prototype.min = function(comparer) { 

    if (this.length === 0) return null; 
    if (this.length === 1) return this[0]; 

    comparer = (comparer || Math.min); 

    var result = this[0]; 
    for (var i = 1; i < this.length; i++) 
     result = comparer(this[i], v); 

    return result; 
} 

Array.prototype.max = function(comparer) { 

    if (this.length === 0) return null; 
    if (this.length === 1) return this[0]; 

    comparer = (comparer || Math.max); 

    var result = this[0]; 
    for (var i = 1; i < this.length; i++) 
     result = comparer(this[i], v);  

    return result; 
} 

및 사용 무언가 :

var minValue = yourArray.min(); 
var maxValue = yourArray.max(); 

jsbin을보십시오 : http://jsbin.com/yoyecono/1/edit