0

フォームを返すライトボックス スクリプトで ajax 呼び出しを行います。

フォームが読み込まれると、私は呼び出しますvar initial = $('form').serializeArray();

フォームが送信されたら、私は電話しますvar final = $('form').serializeArray();

これにより、オブジェクトの 2 つの配列が得られます。ここでやりたいことは、配列内の各オブジェクトを比較し、変更されていないオブジェクトを削除することです。

どうすればいいですか?

4

2 に答える 2

0

これを行うための最速の方法は私が思う

var len = initial.length, i=0, changed=[];
/* I hope initial.length==final.length*/

    for(i; i<len; i++){
        /* 0== '' */
        if (initial[i]===final[i])
           changed[i] = final[i];
    }

//今遊んで

かわった

私は質問について混乱しています

.splice()はインデックスを並べ替えますか?

于 2011-02-01T11:45:26.907 に答える
0

2 つの配列の長さは等しく、要素は両方の配列で同じ順序になると想定しています。この場合、最初の配列の各要素を調べて、2 番目の配列の対応する要素と比較する必要があります。一致する場合は、その位置にある要素を両方の配列から削除します。

このようなものはうまくいくはずです(私はそれをテストしていませんが):

var i = 0;
while (i < initial.length) {
    if(initial[i] == final[i]) {
        initial.splice(i,1);
        final.splice(i,1);
    }
    else {
        i++;
    }
}
于 2011-02-01T11:28:00.467 に答える