Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.05.2015, 22:30
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Суммировать все элементы массива в цикле.
Здравствуйте.
Есть функция. Она принимает, в качестве аргумента, массив любой длины и суммирует его.

<!DOCTYPE html>
<html>
<body>
<button onclick="sumArray()">Try it</button>
<p id="demo"></p>
<p id="result"></p>

<script>

var variablesArray = [];

function sum(arr){//Суммирует только первые 2 элемента массива.
    for(var i = 0, j = i+1; i < arr.length, j < arr.length; i++, j++){
	    var sum = arr[i]+arr[j];
	    return sum;
	}
}

/*function sum(arr){//Суммирует только первые 2 элемента массива.
    var k = 0;
    for(var i = 1; i < arr.length; i++){
	    k = arr[i]+arr[k];
	    return k;
	}
}*/

function sumArray() {
    for(var i = 0; i < 5; i++){
        variablesArray.push(Math.round(Math.random()* 10));//Заполнить массив.
    }

    document.getElementById("demo").innerHTML = variablesArray;
	document.getElementById("result").innerHTML = sum(variablesArray);
	
}

</script>

</body>
</html>


Но она не работает. Подскажите, пожалуйста, почему.
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2015, 23:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Blondinka,
return делают когда хотят получить результат - значит при при i == 0 вернуть sum
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2015, 23:14
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

рони,
но, если поставить return после цикла - получим NaN.
Ответить с цитированием
  #4 (permalink)  
Старый 26.05.2015, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Blondinka
получим NaN
если коде будет логика и синтаксис -- будет сумма.
1. в начале сумма == 0 где это у вас в коде?
2.потом цикл
на каждом этапе цикла прибавляется arr[i] к сумме
3.потом return суммы
Ответить с цитированием
  #5 (permalink)  
Старый 26.05.2015, 23:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Blondinka,
строки 12 - 17 выкинуть забыть
строка 22 исправить
строка 23 перенести
Ответить с цитированием
  #6 (permalink)  
Старый 27.05.2015, 02:03
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Blondinka, есть же reduce для этого

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <button onclick="sumArray()">Try it</button>
  <p id="demo"></p>
  <p id="result"></p>
  
  <script>
    var variablesArray = [];

    function sum(arr) {
      return arr.reduce(function(prev, next) {
        return prev + next;
      });
    }

    function sumArray() {
      for(var i = 0; i < 5; i++){
        variablesArray.push( Math.round(Math.random()* 10));
      }

      document.getElementById("demo").innerHTML = variablesArray;
      document.getElementById("result").innerHTML = sum(variablesArray);

    }
  </script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 27.05.2015, 13:24
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Decode,
я попыталась использовать это в первую очередь. Но у меня ничего не заработало . Мне позор, а вам спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустые элементы массива lammeR Общие вопросы Javascript 5 25.05.2010 02:59
Выбрать все элементы кроме $(this) shustrikk jQuery 2 13.03.2010 14:17
Получить все элементы YISHIMITSY Events/DOM/Window 6 19.02.2010 15:44
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03