Имею следующее:

var numSum = function(set) {
  for(i = 0, i < set.length, i++) {
      var arrayValue = set[i];
      var totalValue = arrayValue + 
  }
}
numSum([1, 2, 3, 4]);

Но все, что я вернусь, это

Uncaught синтаксическая ошибка

. Что я делаю не так?

-3
kmgiffin 14 Дек 2015 в 09:52

6 ответов

Лучший ответ

Для цикла нужно ;, а не ,

Должен быть

for(i = 0; i < set.length; i++)

Сокращенный код x=x+y - x+=y.

Но вы делаете это в неправильном формате.

Должен быть

totalValue += arrayValue 

Если вы объявите переменную внутри цикла, она будет создаваться каждый раз с циклом.

Объявить это вне цикла.

Как это

var totalValue=0;
for(i = 0; i < set.length; i++) {
      var arrayValue = set[i];
      totalValue+= arrayValue ;
}

Вам не нужно объявлять дополнительную переменную для хранения.

Попробуйте вот так

var numSum = function(set) {
  var totalValue=0;
  for(i = 0; i < set.length; i++) {
       totalValue += set[i]; 
  }
  return totalValue;
}
numSum([1, 2, 3, 4]);

JSFIDDLE

Вы можете сделать это, используя Array.prototype .reduce ( ) .

Попробуйте вот так

var sum = [1, 2, 3, 4].reduce(function(prev, curr) { return prev + curr; });

JSFIDDLE

4
Anik Islam Abhi 14 Дек 2015 в 08:13

Вы можете сделать это вот так.

var numSum = function(set) {
    var arrayValue = 0;
    for (i = 0; i < set.length; i++) {
        arrayValue += set[i];

    }
    return (arrayValue);
};
console.log(numSum([1, 2, 3, 4]));

Так что вам нужно изменить несколько вещей в коде УРС

  1. Структура для цикла
  2. использование оператора присваивания. это должно быть как x+y или x+=y

Немного улучшений

  1. Вы можете использовать только одну переменную для хранения суммы и можете вернуть ее.
1
Anik Islam Abhi 15 Дек 2015 в 06:31
Try this:
var numSum = function(set) {
                var arrayValue = 0;
                for(i = 0 ; i < set.length ; i++) {
                     arrayValue += set[i];                    
                }
                return arrayValue;
            }
            alert(numSum([1, 2, 3, 4]));
-1
Meenakshi 14 Дек 2015 в 07:02

Вы получили «Uncaught Syntax Error» для этой строки

var totalValue = arrayValue + 

Это должно быть

totalValue += arrayValue;

Ваша функция numSum будет похожа

function numSum (set) {
  var totalValue = 0;
  for(i = 0, i < set.length, i++) {
    totalValue += set[i];
  }
  return totalValue;
}
numSum([1, 2, 3, 4]);
-1
Swarnendu Paul 14 Дек 2015 в 07:12

Есть опечатки

var numSum = function(set) {
  for(i = 0; i < set.length; i++) {  // replace ',' to ';'
      var arrayValue = set[i];
      var totalValue += arrayValue; //  += operator is short of totalValue = totalValue  + arrayValue
  }
}
numSum([1, 2, 3, 4]);
0
ozil 14 Дек 2015 в 06:59

Требуются следующие изменения:

  1. инициализировать totalValue вне цикла
  2. правильно использовать оператор приращения

Должен быть

var numSum = function(set) {
  var totalValue = 0;
  for(i = 0, i < set.length, i++) {
      totalValue += set[i];
  }
}
numSum([1, 2, 3, 4]);
1
user4642212 14 Дек 2015 в 07:06