данные, не включенные в следующий код

0
    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

Хорошо, я понимаю, почему это не удалось правильно сплайсировать. Причина в том, что длина массива уменьшается после того, как происходит сращивание, и 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 
            }           
        }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню