// 1.- Crea una lista vacía llamada "listaGenerica".
let listaGenerica = [];
// 2.- Crea una lista de lenguajes de programación llamada "lenguagesDeProgramacion con los siguientes elementos: 'JavaScript', 'C', 'C++', 'Kotlin' y 'Python'.
let lenguagesDeProgramacion = ['JavaScript', 'C', 'C++', 'Kotlin', 'Python'] ;
// 3.- Agrega a la lista "lenguagesDeProgramacion los siguientes elementos: 'Java', 'Ruby' y 'GoLang'.
lenguagesDeProgramacion.push('Java', 'Ruby', 'GoLang');
// 4.- Crea una función que muestre en la consola todos los elementos de la lista "lenguagesDeProgramacion.
let mostrarLegunajes = (lista = []) => {
  for (const lenguaje of lista) {
    console.log(lenguaje)
  }
}
mostrarLegunajes(lenguagesDeProgramacion);
// 5.- Crea una función que muestre en la consola todos los elementos de la lista "lenguagesDeProgramacion en orden inverso.
let listarLenguajesInverso = ( lenguajes = [] ) =>{
  let listaInversa = lenguajes.toReversed();
  for (const lenguaje of listaInversa) {
    console.log(lenguaje)
  }
}
listarLenguajesInverso(lenguagesDeProgramacion);
// 6.- Crea una función que calcule el promedio de los elementos en una lista de números.
const calcularPromedio = ( promedios = [0]) => {
  const sumatoria = 0;
  for (const promedio of promedios) {
    sumatoria += promedio; 
  }
  return sumatoria/promedios.length;
}
calcularPromedio([9,9,9]);
// 7.- Crea una función que muestre en la consola el número más grande y el número más pequeño en una lista.
let numeroMayorYMenor = ( numeros=[] ) =>{
  if(numeros.length==0) return {mayor:null,menor:null};
  let mayor = numeros[0];
  let menor = numeros[0];
  for(let numero of numeros){
    if(mayor < numero)  mayor = numero;
    if(menor > numero)  menor = numero;
  }
  return {mayor,menor}
}
console.log(numeroMayorYMenor([5,7,1]));
// 8.- Crea una función que devuelva la suma de todos los elementos en una lista.
let sumar = (numeros=[]) => {
  return numeros.reduce( ( acumulador, valor )=> acumulador += valor, 0);
}
console.log(sumar([5,7,1]));
// 9.- Crea una función que devuelva la posición en la lista donde se encuentra un elemento pasado como parámetro, o -1 si no existe en la lista.
let encontrarNumero = (numero, numeros = [] ) =>{
  return numeros.findIndex(( buscar ) => buscar == numero);
}
console.log(encontrarNumero(1,[5,7,1]));
// 10.- Crea una función que reciba dos listas de números del mismo tamaño y devuelva una nueva lista con la suma de los elementos uno a uno.
const sumarDosArreglos = ( arregloUno = [] ,arregloDos = [] ) => {
  let nuevaLista = arregloUno.concat( arregloDos );
  return nuevaLista.reduce( ( acumulador, valor ) => acumulador += valor, 0);
}
console.log(sumarDosArreglos( [5,5,5], [5,9,1] ));
// 11.- Crea una función que reciba una lista de números y devuelva una nueva lista con el cuadrado de cada número.
const cuadradoDeNumeros = ( numeros=[] ) => {
  return numeros.map((numero)=> numero*numero);
}
console.log(cuadradoDeNumeros([2,4,6]));