Any node can have any number of children. To search this tree i wrote something like this
function Search(key, nodes){
 for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].key == key) {
            return nodes[i];
        }
        if (nodes[i].hasOwnProperty('children')) {
            return this.Search(key, nodes[i].children);
        }
    }
which doesn't quite work...any input?