Попробуйте использовать переменную индекса массива, чтобы отслеживать, какую запись в массиве электронной почты вы заполняете. Вы хотите всегда начинать с индекса 0, затем 1 и т. Д. Независимо от того, какие электронные письма заполнены:
var emails == new Array();
var emailIndex = 0;
if (getFormFieldValue('4469') != '') {
emails[emailIndex ++] = getFormFieldValue('4469');
}
if (getFormFieldValue('4470') != '') {
emails[emailIndex ++] = getFormFieldValue('4470');
}
if (getFormFieldValue('4471') != '') {
emails[emailIndex ++] = getFormFieldValue('4471');
}
// emails should be populated now starting from index 0
Если значения полей формы всегда увеличиваются с 4469-4471, вы также можете упростить и сократить код с помощью цикла for
:
var emails = new Array();
var emailIndex = 0;
for (var fld = 4469; fld <= 4471; fld++)
if (getFormFieldValue(fld.toString()) != '')
emails[emailsIndex++] = getFormFieldValue(fld.toString());
РЕДАКТИРОВАТЬ : Как отмечает @Naren, это можно сделать еще проще, используя Array.push
:
var emails = new Array();
for (var fld = 4469; fld <= 4471; fld++)
if (getFormFieldValue(fld.toString()) != '')
emails.push(getFormFieldValue(fld.toString()));