@DDanser

Где ошибка в вычисление произведения чисел в массиве?

function arrayElementsProduct(array) {

  var result = 1;

  for (var i = 1; i < array.length; i++) {
    result *= array[i];
  }
  return result;
}


Array: [1, 3, 2, 10] = 60 (вычисляет нормально)
Array: [2, 4, 10, 1] = 40 (должно быть 80)
  • Вопрос задан
  • 186 просмотров
Решения вопроса 2
AppFA
@AppFA
Frontend developer at Yandex
Нужно считать с 0 позиции, а у вас идет отсчет с 1, поэтому в первом случае единица на 0 позиции не учитывается и никак не влияет:
function arrayElementsProduct(array) {

  var result = 1;

  for (var i = 0; i < array.length; i++) {
    result *= array[i];
  }
  return result;
}
Ответ написан
milokmurlika
@milokmurlika
Няшка
Так должно работать:
function arrayElementsProduct(array) {

  var result = 1;

  for (var i = 0; i < array.length; i++) {
    result *= array[i];
  }
  return result;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Для свертки массива есть метод reduce:
function arrayElementsProduct(array) {
  return array.reduce(function(r, v) {
    return r * v;
  }, 1);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы