Я думаю, что это хорошая возможность использовать метод Traversing / map :
var valuesArray = $("#selectId option").map(function(){
return this.value;
}).get();
И если вы хотите получить два отдельных массива, содержащих выбранные и невыбранные значения, вы можете сделать что-то вроде этого:
var values = {
selected: [],
unselected:[]
};
$("#selectId option").each(function(){
values[this.selected ? 'selected' : 'unselected'].push(this.value);
});
После этого массивы values.selected
и values.unselected
будут содержать нужные элементы.