Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript,从数组中删除相同的项_Javascript_Object_Serializearray - Fatal编程技术网

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

javascript,从数组中删除相同的项,javascript,object,serializearray,Javascript,Object,Serializearray,我在lightbox脚本中执行ajax调用,该脚本返回一个表单 加载表单时,我调用var initial=$'form'.serializeArray 提交表单时,我调用var final=$'form'.serializeArray 这给了我两个对象数组, 我现在要做的是比较数组中的每个对象,并删除那些没有更改的对象 我该怎么做?我假设两个数组的长度相等,并且元素在两个数组中的顺序相同。在本例中,您需要做的是查看第一个数组的每个元素,并将其与第二个数组的相应元素进行比较;如果匹配,则从两个数组

我在lightbox脚本中执行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是否对索引重新排序


splice是否对索引重新排序?i、 e如果第3项相同,我会以[object,object,undefined,object]或[object,object,object]结束吗?如果没有指定其他元素,拼接将有效地从数组中删除元素请参见