Задача №7

Дано список студентів (ім’я і дата народження: у формі тексту (день.місяць.рік). Знайти найстаршого студента.


Рішення:

'use strict'

function parseDate(dateString) {
  const [day, month, year] = dateString.split('.').map(Number)

  return new Date(year, month - 1, day)
}

function findOldest(list) {
  return list.reduce((oldestPerson, person) =>
    parseDate(oldestPerson.birth) < parseDate(person.birth)
      ? oldestPerson
      : person,
  )
}

function renderStudentList(studentsList) {
  const $el = document.createElement('UL')

  for (const student of studentsList) {
    const liEl = document.createElement('LI')
    liEl.textContent = `${student.name} - ${student.birth}`

    $el.append(liEl)
  }

  return $el
}

const studentsList = [
  {name: 'Олена', birth: '14.03.2004'},
  {name: 'Ігор', birth: '02.12.2003'},
  {name: 'Cвітлана', birth: '27.06.2000'},
  {name: 'Марія', birth: '27.06.2005'},
  {name: 'Яків', birth: '27.06.1995'},
  {name: 'Андрій', birth: '19.08.2002'},
]
const oldestStudent = findOldest(studentsList)
document.querySelector('.js-app')?.append(renderStudentList(studentsList))
document
  .querySelector('.js-app')
  ?.append('Найстарший(а) - ' + oldestStudent.name)