-1
IM試圖得到一個遞歸工作在JavaScript這是我的代碼
Recusion在javascript - 不遞歸
var getCategory = null;
getCategory = function (id, cats) {
if (!cats || !cats.length) return null;
for (var i = 0; i < cats.length; i++) {
var cat = cats[i];
if (cat && cat.Id == id) {
return cat;
}
else if (cat && cat.Children && cat.Children.length) {
return getCategory(id, cat.Children);
}
}
return null;
}
這段代碼peice的基本上是在數據的層次來搜索特定ID的特定元素。
因此,例如,可以說,我的樣本數據是
var sampleData = [
{Id : 1, Children : [{Id:11, Children:[]}, {Id : 12, Children : []}]},
{Id : 2, Children : [{Id:21, Children:[]}, {Id : 22, Children : []}, {Id : 23, Children : []}]},
{Id : 3, Children : [{Id:31, Children:[]}, {Id : 32, Children : []}, {Id : 33, Children : []}]}
]
的問題是,當我打電話像
getCategoriy(21, sampleData); //it gives null
此功能,即使得到
getCategiry(11, sampleData); //gives perfect object back
什麼時我在做/做錯了嗎?
使用調試器。如果你使用了一個調試器(你的瀏覽器中內置了一個調試器),並且通過了代碼,你會很快看到出了什麼問題。 –
哇倒了一個回答了2年前問過的問題。沒有評論。 –