javascript,从数组中删除相同的项目

时间:2011-02-01 11:18:14

标签: javascript object serializearray

我在灯箱脚本中执行ajax调用,该脚本返回一个表单。

加载表单后,我调用var initial = $('form').serializeArray();

提交表单时,我致电var final = $('form').serializeArray();

给了我两个对象数组, 我现在想要做的是比较数组中的每个对象,并删除那些没有改变的对象。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我假设两个数组的长度相等,并且两个数组中的元素顺序相同。在这种情况下,您需要做的是查看第一个数组的每个元素,并将其与第二个数组的相应元素进行比较;如果它们匹配,则从两个数组中删除该位置的元素。

这样的东西应该有用(虽然我没有测试过):

var i = 0;
while (i < initial.length) {
    if(initial[i] == final[i]) {
        initial.splice(i,1);
        final.splice(i,1);
    }
    else {
        i++;
    }
}

答案 1 :(得分: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()重新排序索引吗?