@junior81

Почему return не срабатывает в функции?

function multiply(){
  let calc = 1;
  for(let i = 0, len = arguments.length; i < len; i++){
     if(arguments === 0 ) return 0;
    calc = calc * arguments[i];
  }

  return calc
}
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
myspace
@myspace
Вы делаете return в цикле, просто прерывая цикл, а не останавливая функцию. Вынесите это условие за цикл
function multiply(){

  if( arguments.length === 0 ) {
     return 0; 
  }

  let calc = 1;

  for(let i = 0, len = arguments.length; i < len; i++){
    calc = calc * arguments[i];
  }

  return calc
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Исправьте эту строчку:
if(arguments[i] === 0 ) return 0;
Надо сравнивать с нулём не весь массив аргументов, а значение очередного аргумента.

Upd.
function multiply() {
	let len = arguments.length;
	if( 0 === len) return 0;
	
	for (let i = 0, calc = 1; i < len; i++) {
		if (arguments[i] === 0) return 0;
		calc = calc * arguments[i];
	}
	return calc;
}
Ответ написан
devellopah
@devellopah
просто убери 4-ю строчку
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект