遍历一个数组树?

时间:2011-12-13 09:32:15

标签: javascript jquery coffeescript

我的菜单会显示"已选中"数组作为选项。然后,当选择一个项目时,它会将其分支作为新选项。

为了跟踪遍历,我创建了一个名为select的数组。因此,如果有人选择了第3个选项,则选择第1个选项,然后选择第6个选项select = [3,1,6]

只需将索引推入数组即可,我的问题是如何使用此数组创建对树的引用?

如果select是[3,1,6],我想创建一个函数,导致对tree[3][1][6]的引用,也允许我通过剪掉数组的最后一个值来向后遍历。

(在coffeescript中)

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 :(得分:0)

如果我理解你需要什么,用以下内容改变最后两行应该可以解决问题:

current = tree
for value in select
    current = current['branches'][value]