Clase 5 - Ejercicios de Listas y Objetos

Hicimos un repaso de listas y objetos, de la clase pasada sobre el trabajo con objetos.

Después de esto, discutimos las implementaciones posibles para los trabajos prácticos de “Objetos” y “Listas y Objetos”. Dejo a continuación un resumen de las discusiones, a modo de referencia.

Trabajo Práctico de Objetos

  1. crearPersona() nos pide crear un nuevo objeto.
  2. nombreCompletoDePersona() nos pide crear un string. Para eso podemos usar string interpolation para construir las cadenas de caracteres.
  3. felizCumpleaños() nos pide incrementar el valor de un campo. Para esto podemos modificar directamente el campo, o crear un nuevo objeto con los nuevos valores.
  4. sinDocumento() nos pide eliminar un campo. Para este caso podemos crear un nuevo objeto sin el campo a eliminar o podemos usar el operador delete para eliminar el campo del propio objeto.

Trabajo Práctico de Listas y Objetos

Dejo algunas discusiones y definiciones a las que fuimos llegando para ver la solución de los ejercicios.

function ordenarPorApellido(listaDePersonas) {
    // podemos usar listaDePersonas.sort()
    // de cada persona necesitamos su nombre
    // para comparar 2 strings podemos hacer:
    string1.localeCompare(string2)
}
function soloNombres(listaDePersonas) {
    // tenemos que recorrer toda la lista, para esto podemos usar for() o forEach()

    // opción de recorrido con for
    for (var i = 0; i < listaDePersonas.length; i++) {
        // operamos con cada una de las personas
        listaDePersonas[i]
    }

    // opción de recorrido con forEach
    listaDePersonas.map(persona => {
        // operamos con cada una de las personas
        persona
    })

    // y tenemos que construir un nuevo listado, podemos empezar con un listado vacío
    let listadoDeNombres = [];
}
function promedioEdades(listaDePersonas) {
    // el promedio se calcula sumando el total y dividiendo por la cantidad
    
    // empezamos con un acumulador en 0
    // recorremos todos los elementos
    // sumamos la edad de cada elemento
    // al finalizar, dividimos por la cantidad de elementos
}
function soloMayoresDeEdad(listaDePersonas) {
    // queremos quedarnos con algunos elementos, queremos filtrar la lista

    // una opción es construir una lista nueva, sólo con los que cumplan la condición
    // otra opción es usar listaDePersonas.filter()
}
function laPersonaMayor(listaDePersonas) {
    // queremos encontrar un único elemento, el elemento con la edad máxima

    // si la lista está ordenada por edad, sabemos que en un extremo va a estar nuestro candidato
    // si la lista no está ordenada, tenemos que encontrar el máximo y devolverlo

    // importante que comparamos edad, pero devolvemos el objeto entero
}