我在返回表单的灯箱脚本中执行 ajax 调用。
加载表格时,我打电话var initial = $('form').serializeArray();
提交表格时,我打电话var final = $('form').serializeArray();
这给了我两个对象数组,我现在要做的是比较数组中的每个对象并删除那些没有改变的对象。
我该怎么做?
我在返回表单的灯箱脚本中执行 ajax 调用。
加载表格时,我打电话var initial = $('form').serializeArray();
提交表格时,我打电话var final = $('form').serializeArray();
这给了我两个对象数组,我现在要做的是比较数组中的每个对象并删除那些没有改变的对象。
我该怎么做?
我假设这两个数组的长度相等,并且两个数组中的元素顺序相同。在这种情况下,您需要做的是查看第一个数组的每个元素,并将其与第二个数组的相应元素进行比较;如果它们匹配,则从两个数组中删除该位置的元素。
像这样的东西应该可以工作(虽然我没有测试过):
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() 会重新排序索引吗?