私はオブジェクトの配列を持っています。配列内のすべてのオブジェクトには、id と、他のオブジェクトを含む配列である item プロパティがあります。IDで配列内の要素を見つけることができる必要があります。これは私がこれまでに行ったことのサンプルですが、再帰関数は常に未定義を返します。
関数を数回再帰的に呼び出した場合、関数を終了してアイテムを返すにはどうすればよいですか?
$(function () {
var treeDataSource = [{
id: 1,
Name: "Test1",
items: [{
id: 2,
Name: "Test2",
items: [{
id: 3,
Name: "Test3"
}]
}]
}];
var getSubMenuItem = function (subMenuItems, id) {
if (subMenuItems && subMenuItems.length > 0) {
for (var i = 0; i < subMenuItems.length; i++) {
var item;
if (subMenuItems[i].Id == id) {
item = subMenuItems[i];
return item;
};
getSubMenuItem(subMenuItems[i].items, id);
};
};
};
var searchedItem = getSubMenuItem(treeDataSource, 3);
alert(searchedItem.id);
});