2014-02-18 71 views
-1

我正在製作一個實時聊天應用程序,允許您回覆其他人。數據存儲,每個新的消息有一個數組來存儲答覆,所以陣列可能看起來像處理JavaScript數組遞歸的數組

FIRST MESSAGE 
---REPLY TO FIRST MESSAGE 
    ---REPLY TO SUB MESSAGE 
---REPLY TO FIRST MESSAGE 
    ---REPLY TO SUB MESSAGE 
    ---REPLY TO SUB MESSAGE 

我目前使用下面的代碼:

function process (obj, func) { 
    func(obj); 
    if (obj.child) { 
     obj.child.forEach(function (child) { 
      process(child, func); 
     }); 
    } 
} 

我叫它與(數據是所有消息的數組):

for (i = 0; i < data.length; i++) { 
      process(data[i]['replies'], function (obj) { 
      }); 
} 

這似乎只得到每個消息的第一個答覆,只是跳過休息。任何想法,以防止這種遞歸函數?我真的被困在這裏。謝謝你的幫助!

回答

0

沒關係!我知道了。我需要調用處理函數內的另一個循環,如:

for (i = 0; i < data.length; i++) { 
    process(data[i]['replies'], function (obj) { 
     for (c = 0; c < obj.length; c++) { 
     } 
    }); 
}