Searching an object tree structure I have this recursive function that searches an object tree structure:

dataSearcher = (dataElement, identifierToFind) -&gt; 
    if dataElement.identifier == identifierToFind
        return dataElement
    else
        for childDataElement in dataElement.children
            found = dataSearcher childDataElement, identifierToFind
            if found then return found


Which I then call thus:

foundDataElement = dataSearcher @options.nodeData, identifier


It works just fine so I am happy about that, but I am pretty new to CoffeeScript and would like feedback on the way I structured it.  The loop I used seems a bit old school, so could I have used a comprehension here instead?  Any other feedback would be great as I am still getting my head into the CoffeeScript idiom.

Please let me know if I should edit with more context code.
I'd prefer writing it like this:

dataSearcher = (element, identifier) -&gt; 
  return element if element.identifier is identifier
  for child in element.children
    found = dataSearcher child, identifier
    return found if found


Changes:


guard style instead of else (one less level of indentation)
postfix if (probably a question of style)
is instead of ==
shorter variable names