@Atheist21

Как определить максимальную вложенность массивов в массиве?

Написать функцию, которая определяет глубину самого глубокого вложенного массива в массиве.
Вернуть 1, если нет вложенных массивов. Массив, переданный вашей функции, может содержать любые типы данных.

Я новичок и пытаюсь разбирать задачи на рекурсию посложнее, написал такой код, но он проверяет количество массивов в массиве. Как можно дополнить мой код, чтобы он проверял то, что требуется?
function list_depth(arr) {
        let n = 1;
        for (i of arr) {
          if (Array.isArray(i)) {
            n += list_depth(i);
            console.log(n);
          }
        }
        return n;
      }
      console.log(list_depth([2.0, [2, 0], 3.7, [3, [1, 1], 7], 6.7, [6, 7]]));

И можно как-нибудь без объявления переменной n внутри функции?
  • Вопрос задан
  • 2866 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как можно дополнить мой код, чтобы он проверял то, что требуется?

Дополнить - никак. Надо переписать. К единице надо плюсовать не все результаты рекурсивных вызовов, а только один, наибольший.

И можно как-нибудь без объявления переменной n внутри функции?

Можно:

const getMaxDepth = arr =>
  Array.isArray(arr)
    ? 1 + Math.max(0, ...arr.map(getMaxDepth))
    : 0;


console.log(getMaxDepth([ 1, [ 2 ], [ [ 3 ] ], [ [ [ 4 ] ] ] ])); // 4
console.log(getMaxDepth([])); // 1
console.log(getMaxDepth(666)); // 0
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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