我的JavaScript不工作!帮助:(



我是新来的。我花了一整天的时间试图弄清楚我的代码出了什么问题。是的,这对你来说可能是一个简单的问题,因为我大约一个月前才开始使用javascript。无论如何,您在我的代码中识别错误的帮助是非常感激的!

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

问题:

编写一个名为extremeValue的函数。它有两个参数。第一个是整数数组(您不需要验证它)。第二个参数是字符串"Minimum"或"Maximum"。函数根据第二个形参的值返回数组中最小或最大元素的值。

不要使用Math。min或math。max。在数组中查找最小值的标准算法是假设第一个元素(索引0处)是当前的最小值。然后从第二个元素到最后一个元素重复处理数组。在每次迭代中,比较当前正在处理的元素与当前最小值。如果小于最小值,则将其设置为当前最小值。这样,在处理结束时,当前最小值保存数组中的最小元素值。一个类似的过程可以用来求最大值。测试你的代码。(1)

该函数根据其第二个参数执行两种不同的工作。这种函数编码方法的优缺点是什么?

我的答案(这不起作用):

<!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>

问题在于您检查提示值的方式:

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

在这里,您字符串分配给command。代码应该是(假设我们使用strict equality):

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

在HTML页面中,按如下方式调用Result函数:

<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();
        }
    };
}();

最新更新