大佬教程收集整理的这篇文章主要介绍了递归查找数组中的元素,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
你应该更换
getSubMenuItem(subMenuItems[i].items, ID);
与
var found = getSubMenuItem(subMenuItems[i].items, ID);
if (found) return found;
为了在找到元素时返回它。
并注意属性名称,JavaScript区分大小写,因此您还必须替换
if (subMenuItems[i].ID == ID) {
与
if (subMenuItems[i].ID == ID) {
示范
最终(清除)代码:
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;
}
}
};
我有一个对象数组。数组中的每个对象都有一个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);
});
jsFiddle
以上是大佬教程为你收集整理的递归查找数组中的元素全部内容,希望文章能够帮你解决递归查找数组中的元素所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。