You have to replace
getSubMenuItem(subMenuItems[i].items, id);
from
var found = getSubMenuItem(subMenuItems[i].items, id); if (found) return found;
to return an item when it is found.
And be careful with the name of the properties, javascript is case sensitive, so you should also replace
if (subMenuItems[i].Id == id) {
from
if (subMenuItems[i].Id == id) {
Demonstration
Final (cleared) code:
var getSubMenuItem = function (subMenuItems, id) { if (subMenuItems) { for (var i = 0; i < subMenuItems.length; i++) { if (subMenuItems[i].id == id) { return subMenuItems[i]; } var found = getSubMenuItem(subMenuItems[i].items, id); if (found) return found; } } };
Denys seguret
source share