数据未拼接在以下代码中

时间:2014-03-19 18:21:45

标签: jquery

    formData=$("form").serializeArray();


    for(var i=0; i<formData.length;i++){
        console.log(i+': '+formData[i].name+': ' +formData[i].value);
        if(formData[i].value=="") {
            formData.splice(i,1);
            console.log(i);
        } 

    }

我有一个序列化的数据数组,我想删除数组中的空对象,如上面的代码所示。我不确定为什么拼接没有做到这一点。

1 个答案:

答案 0 :(得分:0)

好的,我知道为什么这没有正确拼接。原因是在拼接发生后阵列的长度减少了,i保持不变。为了解决这个问题,我做了以下几点:

formData=$("form").serializeArray();
l = formData.length;

        for(var i=0; i<l;i++){
            console.log(i+': '+formData[i].name+': ' +formData[i].value);
            if(formData[i].value=="") {
                formData.splice(i,1);
                l--; //reset length of array 
                i--; //reset i 
            }           
        }