プライベート チャットのように、2 人のユーザー間の一連のメッセージがあります。ユーザー A は、ユーザー B、C、および D と 2 ~ 3 のチャットを行うことができます。
次に、この配列を分割して、長さ 3 の配列 (AB、AC、AD 間のメッセージ) を取得する必要があります。これを行うには、次のコードを使用します。
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]