From 11a1ebc9322339a65932b52033e37863132dae53 Mon Sep 17 00:00:00 2001 From: Pablo Tabernero Date: Sun, 3 Dec 2023 21:51:40 +0100 Subject: [PATCH] Tarea UD4 Parte JS Final --- UD4/TS/Tarea.ts | 106 ++++++++++++++++++++++++++++++++ UD4/Tarea.js | 108 ++++++++++++++++++++------------- UD4/index.html | 157 +++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 320 insertions(+), 51 deletions(-) create mode 100644 UD4/TS/Tarea.ts diff --git a/UD4/TS/Tarea.ts b/UD4/TS/Tarea.ts new file mode 100644 index 0000000..cd5dcee --- /dev/null +++ b/UD4/TS/Tarea.ts @@ -0,0 +1,106 @@ +let paises: string[] = ['España', 'Portugal', 'Brasil', 'Argentina', 'Mexico']; + +// Amosa o numero de elementos do Array. +console.log("Amosa o número de elementos do Array."); + +let tamanoArray = (lista: string[]): void => console.log("La longitud del array es: " + lista.length); +tamanoArray(paises); + +// Amosa todos os paises. +console.log("Amosa todos os paises."); + +let mostrarPaises = (lista: string[]): void => console.log("El listado de paises es:" + lista.map(elemento => " " + elemento).join(",") + "."); +mostrarPaises(paises); + +// Amosa todos os paises en sentido inverso. Ollo, que o Array orixinal non quede modificado, é dicir, que non quede ordenado ao revés. +console.log("Amosa todos os paises en sentido inverso. Ollo, que o Array orixinal non quede modificado, é dicir, que non quede ordenado ao revés."); + +let mostrarPaisesInvertido = (lista: string[]): void => + console.log("El listado de paises en orden inverso es:" + lista.map(elemento => " " + elemento).reverse().join(",") + "."); +mostrarPaisesInvertido(paises); + +// Engade un pais ao comezo do Array. +console.log("Engade un pais ao comezo do Array."); + +let anadirPaisAlInicio = (lista: string[], elemento: string): number => lista.unshift(elemento); + +anadirPaisAlInicio(paises, "Andorra"); +mostrarPaises(paises); + +// Engade un pais ao final do Array. +console.log("Engade un pais ao final do Array."); + +let anadirPaisAlFinal = (lista: string[], elemento: string): number => lista.push(elemento); + +anadirPaisAlFinal(paises, "Italia"); +mostrarPaises(paises); + +// Elimina un elemento ao comezo do Array e indica cal foi. +console.log("Elimina un elemento ao comezo do Array e indica cal foi."); + +let elimiarPaisAlInicio = (lista: string[]): string | undefined => lista.shift(); + +console.log("Eliminado del elemento " + elimiarPaisAlInicio(paises) + " del listado de paises."); +mostrarPaises(paises); + +// Elimina un elemento ao final do Array e indica cal foi. +console.log("Elimina un elemento ao final do Array e indica cal foi."); + +let elimiarPaisAlFinal = (lista: string[]): string | undefined => lista.pop(); + +console.log("Eliminado del elemento " + elimiarPaisAlFinal(paises) + " del listado de paises."); +mostrarPaises(paises); + +// Amosa o elemento que se atope na posición que che indique o usuario. +// Asumimos que para un usuario la primera posisión de la lista es 1. +console.log("Amosa o elemento que se atope na posición que che indique o usuario."); + +let entrada: string | null = prompt("Introduce la posicion del pais a mostrar(1 a " + paises.length + "): "); +let posicion = parseInt(entrada); + +let validarEntrada = (posicion: number): boolean => (typeof posicion === 'number' && posicion > 0 && posicion <= paises.length); + +console.log( + validarEntrada(posicion) + ? "El elemento de la posicion " + posicion + " es: " + paises[posicion - 1] + : "La posición introducida no es válida." +); + +// Amosa a posición na que se atopa un elemento indicado polo usuario. +// Asumimos que la posición para el usuario empieza en 1, por que se suma a la hora de mostrarlo. +console.log("Amosa a posición na que se atopa un elemento indicado polo usuario."); + +entrada = prompt("Introduce el nombre del pais a buscar: "); + +let exitePais = (lista: string[], elemento: string): number | null => { + let indice = lista.indexOf(elemento); + return indice !== -1 ? indice + 1 : null; +}; + +let indicePais = exitePais(paises, entrada); + +console.log(indicePais !== null ? "La posicion de " + entrada + " es: " + indicePais : "El pais introducido no es valido."); + +// Amosa os elementos que se atopan entre dúas posicións indicadas polo usuario. +console.log("Amosa os elementos que se atopan entre dúas posicións indicadas polo usuario."); + +let validarFin = (inicial: number, final: number): boolean => typeof final === 'number' && final > inicial && final <= paises.length; +let extraerPaises = (lista: string[], posicionIncial: number, posicionFinal: number): string[] => + lista.slice(posicionIncial - 1, posicionFinal - 1); + +let entradaInicio = prompt("Introduce el valor de la posición inicial: "); +let inicio = parseInt(entradaInicio); + +if (validarEntrada(inicio)) { + let entradaFin = prompt("Introduce el valor de la posición final: "); + let fin = parseInt(entradaFin); + + if (validarFin(inicio, fin)) { + let paisesExtraidos = extraerPaises(paises, inicio, fin); + mostrarPaises(paisesExtraidos); + } else { + console.log("El valor final introducido no es valido"); + } +} else { + console.log("El valor inicial introducido no es valido."); +} diff --git a/UD4/Tarea.js b/UD4/Tarea.js index df43674..19dd9fa 100644 --- a/UD4/Tarea.js +++ b/UD4/Tarea.js @@ -1,78 +1,70 @@ //Apartires dun Array cun listado de paises realiza o seguinte: -let paises = ['España', 'Portugal', 'Brasil', 'Argentina', 'Mexico']; +let paises = ['España', 'México', 'Argentina', 'Brasil', 'Francia', 'Italia', 'Alemania', 'Japón', 'Australia', 'Canadá']; //• Amosa o numero de elementos do Array. -console.log("Amosa o número de elementos do Array."); - -let tamanoArray = (lista) => console.log("La longitud del array es: " + lista.length); -tamanoArray(paises); +let tamanoArray = (lista) => lista.length; +console.log("La longitud del array es: " + tamanoArray(paises)); //• Amosa todos os paises. -console.log("Amosa todos os paises."); - -let mostrarPaises = (lista) => console.log("El listado de paises es:" + lista.map(elemento => " " + elemento).join(",") + "."); -mostrarPaises(paises); +let mostrarPaises = (lista) => lista.map(elemento => " " + elemento).join(","); +console.log("El listado de paises es:" + mostrarPaises(paises) + "."); //• Amosa todos os paises en sentido inverso. Ollo, que o Array orixinal non quede modificado, é dicir, que non quede ordenado ao revés. -console.log("Amosa todos os paises en sentido inverso. Ollo, que o Array orixinal non quede modificado, é dicir, que non quede ordenado ao revés."); - -let mostrarPaisesInvertido = (lista) => console.log("El listado de paises en orden inverso es:" + lista.map(elemento => " " + elemento).reverse().join(",") + "."); -mostrarPaisesInvertido(paises); +let mostrarPaisesInvertido = (lista) => lista.slice().reverse().map(elemento => " " + elemento).join(","); +console.log("El listado de paises en orden inverso es:" + mostrarPaisesInvertido(paises) + "."); //• Engade un pais ao comezo do Array. -console.log("Engade un pais ao comezo do Array."); - -let anadirPaisAlInicio = (lista, elemento) => lista.unshift(elemento); - -anadirPaisAlInicio(paises, "Andorra"); -mostrarPaises(paises); +let anadirPaisAlInicio = (lista, elemento) => { + let nuevoArray = lista.slice(); + nuevoArray.unshift(elemento); + return nuevoArray; +} +console.log("El nuevo listado de paises es: " + mostrarPaises(anadirPaisAlInicio(paises, "Andorra"))); //• Engade un pais ao final do Array. -console.log("Engade un pais ao final do Array.") - -let anadirPaisAlFinal = (lista, elemento) => lista.push(elemento); - -anadirPaisAlFinal(paises, "Italia"); -mostrarPaises(paises); +let anadirPaisAlFinal = (lista, elemento) => { + let nuevoArray = lista.slice(); + nuevoArray.push(elemento); + return nuevoArray; +} +console.log("El nuevo listado de paises es: " + mostrarPaises(anadirPaisAlFinal(paises, "Grecia"))); //• Elimina un elemento ao comezo do Array e indica cal foi. -console.log("Elimina un elemento ao comezo do Array e indica cal foi."); - -let elimiarPaisAlInicio = (lista) => lista.shift(); - -console.log("Eliminado del elemento " + elimiarPaisAlInicio(paises) + " del listado de paises."); -mostrarPaises(paises); +let elimiarPaisDelInicio = (lista) => { + let nuevoArray = lista.slice(); + let elemento = nuevoArray.shift(); + return { nuevoArray, elemento }; +} +console.log("Eliminado del elemento " + elimiarPaisDelInicio(paises).elemento + " del listado de paises."); //• Elimina un elemento ao final do Array e indica cal foi. -console.log("Elimina un elemento ao final do Array e indica cal foi."); - -let elimiarPaisAlFinal = (lista) => lista.pop(); +let eliminarPaisDeLFinal = (lista) => { + let nuevoArray = lista.slice(); + let elemento = nuevoArray.pop(); + return { nuevoArray, elemento }; +} +console.log("Eliminado del elemento " + eliminarPaisDeLFinal(paises).elemento + " del listado de paises."); -console.log("Eliminado del elemento " + elimiarPaisAlFinal(paises) + " del listado de paises."); -mostrarPaises(paises); //• Amosa o elemento que se atope na posición que che indique o usuario. //Asumimos que para un usuario la primera posisión de la lista es 1. -console.log("Amosa o elemento que se atope na posición que che indique o usuario."); - -let entrada = prompt("Introduce la posicion del pais a mostrar(1 a " + (paises.length) + "): "); +let entrada = prompt("Introduce la posición del país a mostrar (1 a " + paises.length + "): "); let posicion = parseInt(entrada); -let validaarEntrada = (posicion) => (typeof(posicion) === 'number' && posicion > 0 && posicion <= paises.length) +let validarEntrada = (posicion) => (typeof (posicion) === 'number' && posicion > 0 && posicion <= paises.length); +let obtenerElemento = (lista, posicion) => validarEntrada(posicion) ? lista[posicion - 1] : false; -console.log(validaarEntrada(posicion) ? "El elemento de la posicion " + posicion + " es: " + paises[posicion - 1] : "La posición introducida no es válida."); +console.log(validarEntrada(posicion) ? "El elemento de la posicion " + posicion + " es: " + obtenerElemento(paises, posicion) : "La posición introducida no es válida."); //• Amosa a posición na que se atopa un elemento indicado polo usuario. // Asumimos que la posición para el usuario empieza en 1, por que se suma a la hora de mostrarlo. -console.log("Amosa a posición na que se atopa un elemento indicado polo usuario."); - entrada = prompt("Introduce el nombre del pais a buscar: "); let exitePais = (lista, elemento) => { @@ -86,5 +78,35 @@ console.log(indicePais !== null ? "La posicion de " + entrada + " es: " + indice //• Amosa os elementos que se atopan entre dúas posicións indicadas polo usuario. +let validar = (inicial, final, longitud) => { + let validarInicio = (inicial, longitud) => (typeof (inicial) === 'number' && inicial > 0 && inicial < longitud); + let validarFin = (inicial, final, longitud) => (typeof (final) === 'number' && final > inicial && final <= longitud); + + return (validarInicio(inicial, longitud) && validarFin(inicial, final, longitud)); +} + +let extraerPaises = (inicial, final, lista) => { + return validar(inicial, final, lista.length) ? lista.slice(inicial - 1, final - 1) : null; +} + +let entradaInicio = prompt("Introduce el valor de la posición inicial: "); +let inicio = parseInt(entradaInicio); +let entradaFin = prompt("Introduce el valor de la posición final: "); +let fin = parseInt(entradaFin); + +//console.log(validar(inicio, fin, pa)) +console.log("Los paises seleccionados son: " + extraerPaises(inicio, fin, paises) + "."); + + + +/* + if (validarFin(inicio, fin)) { + let piasesExtraidos = extraerPaises(paises, inicio, fin); + } else { + alert("El valor final introducido no es valido") + } +} else { + alert("El valor inicial introducido no es valido.") +}*/ \ No newline at end of file diff --git a/UD4/index.html b/UD4/index.html index fb909ff..b5849e8 100644 --- a/UD4/index.html +++ b/UD4/index.html @@ -1,10 +1,151 @@ - - - Ejercicio 3 - + + + + + Tarea UD4 - - - - \ No newline at end of file + + + +

Tarea UD4

+ +

Arrays e Funcións

+ +

Este es el array de paises original:

+

A partir dun Array con un listado de países realiza o seguinte:

+ + + + + +