JavaScript、アレイから同一のアイテムを削除します
-
27-10-2019 - |
質問
フォームを返すLightboxスクリプトでAJAX呼び出しを行います。
フォームがロードされたら、電話します var initial = $('form').serializeArray();
フォームが送信されたら、電話します var final = $('form').serializeArray();
これにより、オブジェクトの2つの配列が表示されます。私が今やりたいことは、配列内の各オブジェクトを比較して、変更されていないオブジェクトを削除することです。
どうやってこれを行いますか?
解決
2つの配列の長さは等しく、要素は両方の配列で同じ順序であると想定しています。この場合、最初の配列の各要素を見て、2番目の配列の対応する要素と比較することです。それらが一致する場合は、両方の配列からその位置の要素を削除します。
このようなものは機能するはずです(私はそれをテストしていませんが):
var i = 0;
while (i < initial.length) {
if(initial[i] == final[i]) {
initial.splice(i,1);
final.splice(i,1);
}
else {
i++;
}
}
他のヒント
これを行うための最速の方法だと思います
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()はインデックスを並べ替えますか?
所属していません StackOverflow