Buenas y bienvenido a los foros. El ejercicio primero está bien resuelto. Solo tienes una errata donde dice
else if (tipoDeProducto==2){
return importeSinImpuestos*1/100+importeSinImpuestos;
}
Debería poner 10/100 en lugar de 1/100
Sobre lo que comentas de que como hacer para que si el usuario introduce un valor de texto en cualquiera de los dos parámetros, el programa alerte de que no es un valor numerico y se detenga o pida nuevamente ingresar el valor., esto que es a lo que llamamos validar entradas y se trata en posteriores entregas del curso, así que ya lo verás cuando llegues a ellas.
El ejercicio segundo también está bien, aunque debes prestar atención a una cosa. Si escribimos tipoDeProducto[0] = "undefined"; estamos diciendo que ese elemento del array contiene una cadena de texto.
En cambio si escribimos tipoDeProducto[0] = undefined; ese elemento del array tiene un tipo especial de dato, el tipo undefined, que es un tipo primitivo de JavaScript.
Se trata de dos conceptos diferentes, no tiene nada que ver que una variable contenga una cadena de texto a que contenga el valor especial undefined.
El ejercicio pedía "La función debe devolver un array con valor undefined para el índice 0..." y ahí se refiere al valor especial undefined, es decir, habría que escribirlo sin comillas.
También te falta mostrar por pantalla undefined ya que el ejercicio pedía "obtenerImporteConImpuestos(100) debe devolver: resultado[0] = undefined, resultado[1] = 121, resultado[2] = 110, resultado[3] = 105"
Salu2