En realidad si que puedes optimizarlo. En este caso da un poco igual, pero en otros es mejor que crees las etiquetas de javascript.
El motivo es que estás actualizando el documento 3 veces. En caso de que el documento necesitase renderizar mucha historia lo mejor sería utilizar un documentFragment https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
Por otro lado, estás haciendo 2 operaciones innecesarias, actualizar el value del primer elemento y después eliminarlo.
Solución super sencilla, inicializa el iterador con 1 para no acceder al índice 0 del array. (Dando por echo que el por defecto va a ser el primer elemento del array). Tambien podrías hacer un splice al array para quitarle el primer elemento.
Así ya no necesitas. document.getElementById("empty").value = "";
Si añades el código de javascript justo antes de la etiqueta body, entonces también puedes prescindir totalmente del addEventListener.
Otra cosa que está bien saber es que por cada iteración se calcula la condición. Es decir, se está obteniendo el .length cada iteración. Sabes que el tamaño es constante asique podrías usar un valor fijo para evitar calcular el tamaño del string en cada iteración. En este caso concreto es hasta contraproductivo, pero lo comento porque se te puede dar el caso que metas una condición de bastante costo computacional que es mejor que precalcules y metas en una variable. Puedes usar el propio espacio destinado para la inicialización o asignación del bucle for clásico, así se elemina de memoria al concluir el bucle.
Ej:
El motivo es que estás actualizando el documento 3 veces. En caso de que el documento necesitase renderizar mucha historia lo mejor sería utilizar un documentFragment https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
Por otro lado, estás haciendo 2 operaciones innecesarias, actualizar el value del primer elemento y después eliminarlo.
Solución super sencilla, inicializa el iterador con 1 para no acceder al índice 0 del array. (Dando por echo que el por defecto va a ser el primer elemento del array). Tambien podrías hacer un splice al array para quitarle el primer elemento.
Código (javascript) [Seleccionar]
for (var i = 1; i < options.length; i++) {
options[i].value = options[i].innerText
}
Así ya no necesitas. document.getElementById("empty").value = "";
Si añades el código de javascript justo antes de la etiqueta body, entonces también puedes prescindir totalmente del addEventListener.
Otra cosa que está bien saber es que por cada iteración se calcula la condición. Es decir, se está obteniendo el .length cada iteración. Sabes que el tamaño es constante asique podrías usar un valor fijo para evitar calcular el tamaño del string en cada iteración. En este caso concreto es hasta contraproductivo, pero lo comento porque se te puede dar el caso que metas una condición de bastante costo computacional que es mejor que precalcules y metas en una variable. Puedes usar el propio espacio destinado para la inicialización o asignación del bucle for clásico, así se elemina de memoria al concluir el bucle.
Ej:
Código (javascript) [Seleccionar]
for (var i = 1, s = options.length; i < s; ++i) {
options[i].value = options[i].innerText;
}