У меня есть многомерный массив, похожий на этот:
(
[0] (
title: 'First Group'
type: 'group'
children: (
[0] (
title: 'Inner Group'
type: 'group'
children: (
[0] (
title: 'Deep image'
type: 'image'
)
[1] (
title: 'Another deep image'
type: 'image'
)
)
)
)
)
[1] (
title: 'Root depth image'
type: 'image'
)
)
Я хочу иметь возможность работать с этим массивом и всеми его дочерними элементами (этот массив может быть бесконечно рекурсивным) для печати / вывода содержимого в браузер.
Проблема, с которой я столкнулся, заключается в возможности указать определенную разметку (и даже выполнить условия для каждого элемента) для различных типов элементов.
Eg. Печатайте заголовок каждого изображения, только если оно соответствует регулярному выражению и т. Д.
Единственный метод, который я могу понять, который будет рекурсивно сортировать массив, - это метод / функция, которая вызывает себя всякий раз, когда обнаруживаются дочерние элементы, но, похоже, я не смогу выполнить условия, если это так.
Если существует циклический процесс (без использования функции), это, вероятно, будет наиболее подходящим вариантом, поэтому для каждого дочернего элемента я могу выполнить любые необходимые условия для каждого элемента.
Я пробовал с , в то время как и foreach , но безрезультатно.
Примечание: Я скомпилировал этот массив из двух исходных массивов, которые не были рекурсивными, и мог бы использовать эти массивы, имеющие связанные ключи, если это поможет решению.