@boris_bor

Как посчитать сумму элементов вложенных массивов без использования циклов?

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

Вот что написал, но это не работает:

var a =    [ 2,  [ 4, [2], 8, [15,7], 4 ], [ 9, [] ]];

function summ(n) {
	var res = n.shift();
	
	if (n.length !== 0) {
		res=res+summ(n);
	}
		return res;
}

summ(a);
console.log(summ(a));
  • Вопрос задан
  • 343 просмотра
Пригласить эксперта
Ответы на вопрос 2
Alexandroppolus
@Alexandroppolus
кодир
function summArr(a, len) {
    return len < 1 ? 0 : summArr(a, len - 1) + summ(a[len - 1]);
}

function summ(a) {
    return Array.isArray(a) ? summArr(a, a.length) : a;
}
Ответ написан
Комментировать
hahenty
@hahenty
('•')
(function sss( a ) {
  if( typeof a === 'number' ) return a;
  if( a.length === 0 ) return 0;
  return sss( a[ 0 ] ) + sss( a.slice( 1 ) );
})(  [ 2, [ 4, [2], 8, [15,7], 4 ], [ 9, [] ]] );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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