Obtención de los valores seleccionados en una etiqueta multiselect en Javascript

Tengo el siguiente código

function searchFlights() {
    var select1 = document.getElementById("airports-select-1");
    var selected1 = [];
    while(select1.selectedIndex != -1) {
      if(select1.selectedIndex != 0) selected1.push(select1.options[select1.selectedIndex].value); 
      select1.options[select1.selectedIndex].selected = false;
   }

   console.log(selected1);
}

Esto funciona bien, pero como puede ver en el código de esta línea:

select1.options[select1.selectedIndex].selected = false;

Está haciendo una deselección del valor.

Ahora, no quiero deseleccionar los valores. Si elimino el comentario de esa línea en el código, el código se ejecutará para siempre.

¿Existe alguna solución más refinada y sofisticada para recuperar múltiples valores de una etiqueta seleccionada utilizando Javascript?

Respuestas a la pregunta(2)

Su respuesta a la pregunta