Вопрос Задача по javascript. тема: многомерные массивы

Регистрация
26 Апр 2013
Сообщения
81
Репутация
10
Спасибо
0
Монет
0
Задача: let arr = [[1, 2, 3, [4, 5, [6, 7]]], [8, [9, 10]]];

Вручную, без цикла, найдите сумму элементов этого массива.

Сделал так: let arr = [[1, 2, 3, [4, 5, [6, 7]]], [8, [9, 10]]];

let sum = arr[0][0] + arr[0][1] + arr[0][2] + arr[0][3][0] +

arr[0][3][1] + arr[0][3][2][0] + arr[0][3][2][1] +

arr[0][4][0] + arr[0][4][1][0] + arr[0][4][1][1]

console.log(sum) Выводит ошибку: Uncaught TypeError: Cannot read properties of undefined (reading '0')

Понял, что ошибка связана с arr[0][4][0], но так и не понял как это исправить.

Подскажите, какое решение у этой задачи (без циклов) и в чём моя ошибка - что я сделал не так?
 
Ну так логично. Элемента 0,4 не существует. Там только элементы 0-3.
Ты наверное пропустил arr[1].
 
Если даже без цикла - так как у тебя никто не делает. Раз нельзя циклом - делают рекурсией. На JS сейчас с этим сейчас возиться не буду, но покажу, так и быть, алгоритмы распаковки глубоких многомерных массивов и нахождения их общей суммы на Python # распаковка многомерного маcсива рекурсией
arr = [[1, 2, 3, [4, 5, [6, 7]]], [8, [9, 10]]]
result = []


def unpack_array(x):
global result
for i in x:
if not isinstance(i,list):
result +=
else:
unpack_array(i)
return result

# сумма массива рекурсией
s = 0
list_ = unpack_array(arr)

def get_rec_sum(x, i=0):
global s
s += x
if i == len(x) - 1:
return s
return get_rec_sum(x, i + 1)


print(get_rec_sum(list_)) 55
 
подсказывать барану, который банит ответы? ! идиотов нет!... а ты есть!
 
Назад
Сверху