2015-08-19 46 views
-2

我是新來的,我花了整整一天的時間來弄清楚我的代碼有什麼問題,是的,這可能是一個簡單的問題,因爲我剛剛在一個月前開始使用JavaSript。 ,您的幫助確定我的代碼中的錯誤是非常感謝!我的JavaScript不起作用!幫助:(

================================ ==========================================

問題:

編寫一個名爲extremeValue的函數,它有兩個參數,第一個是整數數組(不需要驗證);第二個參數是字符串「Minimum」或「Maximum」。函數r根據第二個參數的值,控制數組中的最小或最大元素值。

請勿使用Math.min或Math.max。在數組中找到最小值的標準算法是假定第一個元素(在索引0處)是當前最小值。然後重複從第二個元素到最後一個元素處理數組。在每次迭代中,比較正在處理的當前元素和當前最小值。如果它小於最小值,則將其設置爲當前最小值。通過這種方式,在處理結束時,當前最小值保存數組中的最小元素值。類似的過程將用於找到最大值。測試你的代碼。 (1 mark)

該函數根據第二個參數執行兩個不同的作業。這種編碼功能的方法有哪些優缺點?

我的回答(不工作):

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>Eng1003 Workshop Code Week 04</title> 
<style> 
    #outputArea{ 
     padding: .25em; 
     border: solid black 2px; 
     margin: 3em; 

     height: 20em; 
     width: 20em; 

     overflow-y: scroll; 

     font-family: arial "sans serif"; 
     font-size: 1em; 
     color: rgb(50, 50, 250); 

     background-color: rgb(225,225,225) ; 
    } 
</style> 

</head> 

<body> 
<!-- -->  
    <div id="outputArea"></div> 

    <script> 

     function maximum(setOfValues){ 
      var retVal = "" ; 
      var length = setOfValues.length ; 
      var max = 0 ; 
      for (var i = 0; i < length; i++){ 
       if (setOfValues[i] > max){ 
        max = setOfValues[i] ; 
       } 
      } 
      retVal = max ; 
      return retVal ; 
     } 

     function minimum(setOfValues){ 
      var retVal = ""; 
      var length = setOfValues.length ; 
      var min = 0 ; 
      for (var i = 0; i < length; i++){ 
       if (setOfValues[i] < min){ 
        min = setOfValues[i] ; 
       } 
      } 
      retVal = min; 
      return retVal ; 
     } 

     function extremeValue(setOfValues, command){ 
      var outString = "" ;  
      var retVal = "" ;  
      if (command = "Maximum"){ 
       outString = "The maximum value is " + maximum(setOfValues) + "." ; 
      } else if (command = "Minimum"){ 
       outString = "The minimum value is " + minimum(setOfValues) + "." ; 
      } else { 
       outString = "Sorry, but your command is unclear. Please ensure that your input is either 'Maximum' or 'Minimum'." ; 
      } 
      retVal = outString ; 
      return retVal ; 
     } 

     var target = document.getElementById("outputArea") ; 
     var inputCommand = prompt("What is your command?") ; 
     var inputValues = [10,30,500, 1000] ; 
     var finalAnswer = "" ; 

     finalAnswer = extremeValue(inputValues, inputCommand) ; 
     target.innerHTML = finalAnswer ; 

     </script> 
</body> 

回答

3

問題是你正在檢查您的提示值的方法:

if (command = "Minimum") 
if (command = "Maximum") 

這裏你字符串分配給command。該代碼應(假設我們使用strict equality):

if (command === "Minimum") 
if (command === "Maximum") 

DEMO

+0

感謝的人!完全修復它。 :) – Fenderghost

0

在你的HTML頁面,請撥打如下結果函數:

<script> 
    Result.init(); 
</script> 

var Result = function() { 
    var maximum = function (array) { 
     var val = 0; 
     for (var i = 0; i < array.length; i++) { 
      if (array[i] > val) { 
       val = array[i]; 
      } 
     } 
     return val; 
    } 
    var minimum = function (array) { 
     var val = 0; 
     for (var i = 0; i < array.length; i++) { 
      val = array[i]; 
      if (array[i] < val) { 
       val = array[i]; 
      } 
     } 
     return val; 
    } 
    var start = function() { 
     var inputValues = [10, 30, 500, 1000]; 
     var min = minimum(inputValues); 
     var max = maximum(inputValues); 
    } 
    return { 
     init: function() { 
      start(); 
     } 
    }; 
}();