Solución ejercicios

/*
Crear una función aprobados a la que le pasamos un array de notas y nos devuelve
 un array con las notas de los aprobados.*/

/**
 * 
 * @param {Array} lista de notas
 * @returns array con las notas>=5
 */
function aprobados(lista) {
    // Recorrer la lista y almacenar los que son mayor de 5
    let res = [];
    for (let nota of lista) {
        if (nota >= 5) {
            res.push(nota);
        }
    }
    return res;
}
function aprobados2(lista) {
    return lista.filter(function (valor) {
        return valor >= 5;
    })
}
let notas = [1, 4, 7, 8]
console.log(aprobados(notas)); // [7,8]
console.log(aprobados2(notas)); // [7,8]

/*
Crear una función aprobadosNota a la que le pasamos un array de notas y una nota de corte
y nos devuelve un array con las notas que superan o igualan la nota de corte. 
El valor por defecto de la nota de corte es 5
notas=[2,4,6,8,10]
aprobadosNota(notas) ->[6,8,10]
aprobadosNota(notas,7) ->[8,10]
*/
/**
 * 
 * @param {Array} lista de notas 
 * @param {Number} nota de corte 
 * @returns {Array} lista de notas que superan la nota de corte
 */
function aprobadosNota(notas, corte = 5) {
    return notas.filter(function (valor) {
        return valor >= corte;
    })
}

notas = [2, 4, 6, 8, 10]
console.log(aprobadosNota(notas)); //[6,8,10]
console.log(aprobadosNota(notas, 7));//[8,10]
/*
Crear una función a la que le pasemos un número y nos devuelva un array con 
los números desde el 1 al número que me pasen. 
Ejemplo, si le paso un 5 me devuelve [1,2,3,4,5] */

/**
 * 
 * @param {Number} numero hasta el que crear el rango
 * @returns Un array de 1 hasta el número que nos pasan
 */
function crearRango(numero){
    let res=[];
    for(let i=1;i<=numero;i++){
        res.push(i);
    }
    return res;
}
console.log(crearRango(5)); // [1,2,3,4,5]

/*
Una función estaOrdenado que nos devuelva true si le pasamos un array ordenado
 y false en caso contrario. Ojo, no que lo ordene, que nos diga si está ordenado.
  Ej: estaOrdenado([1,4,7])->true estaOrdenado([1,4,3])->false */

  /**
   * 
   * @param {Array} lista de números
   * @returns {Boolean} Devuelve si está ordenado o no
   */
function estaOrdenado(lista){
    let res=true;
    for(let i=1;i<lista.length;i++){
        if (lista[i]<lista[i-1]){
            res=false;
        }
    }
    return res;
}
function estaOrdenado2(lista){
    let res=true;
   lista.forEach(function(valor,indice,tabla){
    if (indice>0 && valor<tabla[indice-1]){
        res= false;
    }
   })
    return res;
}
console.log(estaOrdenado([1,4,7])); // true
console.log(estaOrdenado([1,4,3])); // false
console.log(estaOrdenado2([1,4,7])); // true
console.log(estaOrdenado2([1,4,3])); // false

/*
Crear una función masCorta(cadenas) a la que le pasamos un array de cadenas y nos 
devuelva la cadena más corta. Si hay dos o más cadenas con la misma longitud
 cualquiera de ellas
*/
/**
 * 
 * @param {Array} lista de cadenas 
 * @returns La cadena más corta
 */
function masCorta(cadenas){
    let corta=cadenas[0];
    for(let cadena of cadenas){
        if (cadena.length<corta.length){
            corta=cadena;
        }
    }
    return corta;
}

console.log(masCorta(["hola","que","pasa"])); // "que"
console.log(masCorta(["patatas","traigo","al","mercado"])); // "al"

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos