Задачка:
Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов, число которых не ограничено. Функция работает только с числами (включая строковые). Если какой-то из параметров - массив, то к сумме добавляется также сумма значений этого массива (если какое-либо из значений этого массива также является массивом, то к результату добавляется также и сумма его значений, и так далее).
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
Помогите разобраться пожалуйста.
А еще как можно реализовать вот это "если какое-либо из значений этого массива также является массивом, то к результату добавляется также и сумма его значений, и так далее"?