2015-08-19 47 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(); 
     } 
    }; 
}();