Вы используете значение параметра в качестве индекса массива.Поскольку с value="0"
нет опции, у вас нет значения в этом элементе массива.
Вместо использования значения в качестве индекса, вы можете просто вставить в массив.
$('select option').each(function(){
if ($(this).val() !== '' && $(this).val() !== null) {
op.push($(this).text());
}
});
Тогда в начале не будет пустого элемента, но индексы не будут соответствовать значениям.
Или вы можете сделать op
объектом, а не массивом.Тогда он будет иметь только те свойства, которые вы добавляете.