2015-08-19 4 views
-2

Я новичок здесь. Я весь день пытался выяснить, что не так с моим кодом. Да, это могут быть простые вопросы для вас, так как я только начал JavaSript около месяца назад. , ваша помощь в определении ошибки в моем коде оценивается!Мой JavaScript не работает! Help :(

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

Вопрос:

Код функции extremeValue. Он принимает 2 параметра: первый представляет собой массив целых чисел (вам не нужно его проверять). Второй параметр - это строка «Minimum» или «Maximum». Функция r выдает минимальное или максимальное значение элемента в массиве в зависимости от значения второго параметра.

Не используйте 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> 

ответ

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(); 
     } 
    }; 
}(); 
Смежные вопросы