My 5 cents on the whole "recursive vs. iterative" discussion: The functions are by all means iterative and have nothing to do with recursion. The r-suffixed ones are however deep in the sense that they can traverse more than one level down object and array properties.