Показать сообщение отдельно
  #1 (permalink)  
Старый 26.07.2017, 09:32
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Функция, которая возвращает сумму всех чисел, переданных в качестве аргументов
Задачка:
Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов, число которых не ограничено. Функция работает только с числами (включая строковые). Если какой-то из параметров - массив, то к сумме добавляется также сумма значений этого массива (если какое-либо из значений этого массива также является массивом, то к результату добавляется также и сумма его значений, и так далее).

var sum = getSum(1, '1', 'one', [2, '2', 'two']);
console.log( sum ); // 6


мне надо,чтоб у меня вывелась сумму всех чисел,переданных через аргумент. Т.е. в данном случае должно быть 6. Но мне выводит 11(количество всех аргументов).

Мой JS
function getSum () {
	var result=0;

	for (var i = 0; i < arguments.length; i++) {


		if(arguments.length instanceof Array){

  			for (var i = 0; i < arguments.length; i++){

  				result +=(arguments[i]=(!isNaN(+arguments[i]))?+arguments[i]:0);}

  			}else if(!isNaN(+arguments[i])){

					result +=arguments[i];

  			}else{

				continue;

  			}

	};

	return result;
};

var sum = getSum(1, '1', 'one', [2, '2', 'two']);
console.log( sum ); // 6


Помогите разобраться пожалуйста.


А еще как можно реализовать вот это "если какое-либо из значений этого массива также является массивом, то к результату добавляется также и сумма его значений, и так далее"?
Ответить с цитированием