Если даже без цикла - так как у тебя никто не делает. Раз нельзя циклом - делают рекурсией. На 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 += [i]
else:
unpack_array(i)
return result
# сумма массива рекурсией
s = 0
list_ = unpack_array(arr)
def get_rec_sum(x, i=0):
global s
s += x[i]
if i == len(x) - 1:
return s
return get_rec_sum(x, i + 1)
print(get_rec_sum(list_))
55
NK163Ученик (192)
1 год назад
Спасибо, но я учу JS по учебнику и там первое задание в теме Многомерных массивов было именно вручную найти сумму элементов. Я уже решил это задание самостоятельно - оказывается, внутри основного массива было два массива, а не один. Обращаясь к arr[0][4][0], я обращался к чётвертому элементу в первом массиве, которого в принципе и нет. Вместо этого я написал arr[1][0] и код стал рабочим. В общем, невнимательно просмотрел, где стоят все квадратные скобки. Но за этот вариант тоже спасибо!
Вручную, без цикла, найдите сумму элементов этого массива.
Сделал так: Выводит ошибку: Uncaught TypeError: Cannot read properties of undefined (reading '0')
Понял, что ошибка связана с arr[0][4][0], но так и не понял как это исправить.
Подскажите, какое решение у этой задачи (без циклов) и в чём моя ошибка - что я сделал не так?