@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
}
  • Вопрос задан
  • 398 просмотров
Решения вопроса 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-ю строчку
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект