Closest Relative

jQuery JavaScript Selectors Public



The following XML represents a family tree:


Implement the closestRelative function so that it returns the parent's closest relative whose name matches the relativeName and obeys the following rules:

  • The parent parameter is a jQuery selector of which the closest relative will be a descendant.
  • Each member of the family, including children, may also be a parent to one or more children.
  • Children are more closely related to the parent than grandchildren.
  • If several children in the same generation have the same name then the first child in the tree is considered the closer.
  • If no matching relative is found the function should return an empty jQuery object.

For example, closestRelative($('James'), 'Mike') should return the jQuery object wrapping <Mike></Mike>.

ECMAScript 6, jQuery v3.2.1 (available as $)

  •   Example case: Wrong answer
  •   Several generations: Wrong answer
  •   Children with the same name: Wrong answer