Обход дерева массива? - PullRequest
       3

Обход дерева массива?

2 голосов
/ 13 декабря 2011

Мое меню отображает «выбранный» массив в качестве параметров. Затем, когда элемент выбран, он отображает его ветви как новые параметры.

Для отслеживания обхода я создаю массив с именем select. Таким образом, если кто-то выбрал 3-й вариант, то 1-й вариант, а затем 6-й вариант, select = [3,1,6]

Достаточно просто вставить индекс в массив, мой вопрос: как я могу использовать этот массив для создания ссылки на дерево?

Если выбрано значение [3,1,6], я хочу создать функцию, которая приводит к ссылке на tree[3][1][6], что также позволяет мне перемещаться назад, обрезая последнее значение массива.

(в кофейном тексте)

tree:
    name: 'name1'
    branches:[
        name: 'name2'
        branches: [
            name: 'name3'
            branches: [
                name: 'name4'
                branches:[]
            ,
                name: 'name5'
                branches:[]
            ,
                name: 'name6'
                branches:[]
            ]
        ]
    ]

current = tree

#when clicked

$('.menu li').on 'click', ()->
    select.push($(this).index())

    for value in select
         current = current+'['+value+']'

#this results in a string, not an actual reference to the tree.

1 Ответ

0 голосов
/ 13 декабря 2011

Если я правильно понимаю, что вам нужно, замена последних 2 строк следующим: «1001 *

current = tree
for value in select
    current = current['branches'][value]
»
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...