我寫了一個傳統的遞歸循環,但是當條件滿足時它不返回值,但仍然繼續循環。我試圖打破,但並沒有停止。如何使JSON遞歸工作
我的代碼和JSON如下。不過,我在控制檯上看到,當id爲「2」時,該值會按預期填充一次。也沾搜索做得正確,以及但是當我通過調用函數檢查返回的對象util.iterate(json)
調用函數對象的值是undefined
util.iterate = function (obj){
for(var i in obj)
{
if(i === "id" && obj[i] === "2"){
console.log("test" +obj[i] );
return obj;
//break; does not work either
}
else if (typeof(obj[i])=="object"){
this.iterate(obj[i]);
}
}
}
JSON:
{
"id": "0",
"item": [{
"id": "1",
"text": "1111",
"userdata": [{
"name": "name",
"content": "BK"
}]
},
{
"id": "2",
"select": "1",
"text": "222222",
"item": [{
"id": "21",
"text": "child"
}]
},
{
"id": "3",
"text": "3333"
}]
}
您的JSON是一個字符串? – lante
只需一眼就能看到它,因爲如果一件物品被「找到」,你就不會返回任何東西。如果'this.iterate(obj [i]);'返回一個值,你必須返回。 – travis