我有兩個用戶之間的消息數組,如私人聊天。用戶A可以與用戶B,C和D進行2-3次聊天。拆分數組並創建一個多維數組
現在我必須拆分這個數組並獲得長度爲3的數組(A-B,A-C,A-D之間的消息)。要做到這一點,我用這個代碼:
var gloabal = [];
var myArray = [];
function splitArray() {
alert("Split");
var oldArray = myArray;
var newArray = [];
var object = oldArray[0];
var daUtente = object.get("daUtente");
var aUtente = object.get("aUtente");
for (var i = 0; i < myArray.length; i++) {
var obj = myArray[i];
var newDaUtente = obj.get("daUtente");
var newaUtente = obj.get("aUtente");
if ((newDaUtente == daUtente) && (newaUtente == aUtente) ||
(newDaUtente == aUtente) && (newaUtente == daUtente)) {
newArray.push(obj);
oldArray.splice(i, 1);
}
var lastObj = myArray[myArray.length - 1];
if (obj == lastObj){
gloabal.push(newArray);
newArray = [];
if(oldArray.length != 0) {
myArray = oldArray;
splitArray();
}
else {
myArray = gloabal;
alert("end");
}
}
}
}
這種邏輯可與iPhone應用程序,但使用Javascript我有一些問題。我認爲原因是我對Javascript的不瞭解。你能幫我解決這個錯誤嗎?我認爲問題是:
else {
myArray = gloabal;
alert("end");
}
,因爲我沒有看到「結束」警惕!
實施例: 數組:
1 - user A - user B - message
2 - user B - user A - message
3 - user A - user B - message
4 - user A - user B - message
5 - user A - user C - message
6 - user C - user A - message
7 - user A - user D - message
我想這樣的: 陣列1
1 - user A - user B - message
2 - user B - user A - message
3 - user A - user B - message
4 - user A - user B - message
陣列2
1 - user A - user C - message
2 - user C - user A - message
陣列3
1 - user A - user D - message
newArray = [陣列1,陣列2,陣列3]
請向我們展示一些示例輸入和預期輸出。目前還不清楚這個功能應該做什麼。 – Bergi
我用一個例子編輯我的問題! – kikko088
我仍然不確定這些數組包含的是什麼。你可以讓它成爲一個可執行的*例子嗎?嘗試記錄'JSON.stringify(myArray,null,4)'的值,您可以將其作爲數組文字發佈。順便說一句,你的函數的結果是什麼,它不返回任何東西? – Bergi