Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2021, 22:28
Аспирант
Отправить личное сообщение для TomWalbridge Посмотреть профиль Найти все сообщения от TomWalbridge
 
Регистрация: 24.10.2021
Сообщений: 31

Помогите решить задачу!
Всем привет! такой вопрос, у меня есть массив, в нем есть исходные данные, в том числе и дата рождения человека, этот массив вывожу в таблицу, мне надо написать функцию при которой будет вычисление массива и занесение его в таблицу в ячейку рядом с датой рождения(возраст студента), также есть форма добавления нового студента
Внемлю о помощи!!! эта функция function age()
const array = [
    { sname: 'Сидоров', fname: 'Иван', lname: 'Михайлович', bdate: '23.12.1990', startlearn: '12.12.2005', fac: 'Физики' },
    { sname: 'Сидорова', fname: 'Ивана', lname: 'Михайловна', bdate: '12.11.1994', startlearn: '24.01.2006', fac: 'Астрономии' },
    { sname: 'Сорокина', fname: 'Мария', lname: 'Алексеевна', bdate: '01.01.1992', startlearn: '11.12.2008', fac: 'Математики' },
    { sname: 'Андропов', fname: 'Александр', lname: 'Петрович', bdate: '3.10.1992', startlearn: '13.12.2003', fac: 'Информатики' },
    { sname: 'Никифоров', fname: 'Олег', lname: 'Олегович', bdate: '24.12.1995', startlearn: '12.12.2004', fac: 'Химии' }
]


buildTable(array)

function buildTable(data) {
    let table = document.getElementById('mytable')
    table.innerHTML = ''

    for (let i = 0; i < data.length; i++) {
        let fioObj = data[i].sname + "\n" + data[i].fname + "\n" + data[i].lname
        let row = `
        <tr>
        <td>${fioObj}</td>
        <td>${data[i].fac}</td>
        <td>${data[i].startlearn}</td>
        <td>${data[i].bdate}</td>
        <tr/>
        `
        table.innerHTML += row
    }
}
document.getElementById("inputFac").addEventListener('keyup', function() {
    let value = document.getElementById('inputFac').value
    console.log(value)
    let data = tableSearch(value, array)
    buildTable(data)
})


function tableSearch(value, data) {
    let filterData = []
    for (let i = 0; i < data.length; i++) {
        value = value.toLowerCase()
        let name = data[i].fac.toLowerCase()

        if (name.includes(value)) {
            filterData.push(data[i])
        }
    }
    return filterData
}

document.getElementById("inputFio").addEventListener('keyup', function() {
    let value = document.getElementById('inputFio').value
    console.log(value)
    let data = tableSearch(value, array)
    buildTable(data)
})


function tableSearch(value, data) {
    let filterData = []
    for (let i = 0; i < data.length; i++) {
        value = value.toLowerCase()
        let name = data[i].fname.toLowerCase()

        if (name.includes(value)) {
            filterData.push(data[i])
        }
    }
    return filterData
}

function onAddStudent() {

    const inputStudentName = document.getElementById('student__name').value;
    const inputStudentSName = document.getElementById('student__sname').value;
    const inputStudentLName = document.getElementById('student__lname').value;
    const inputStudentBDate = document.getElementById('student__bdate').value;
    const inputStudentStLearn = document.getElementById('student__startLearn').value;
    const inputStudentFac = document.getElementById('student__faculty').value;

    let input = {
        fname: inputStudentName,
        sname: inputStudentSName,
        lname: inputStudentLName,
        bdate: inputStudentBDate,
        startlearn: inputStudentStLearn,
        fac: inputStudentFac,
    }
    console.log(input);

    array.push(input);
    buildTable(array);
}

function age() {
    let today = new Date();
    let dateOfBirthday = new Date(array.bdate);


    //Возраст = текущий год - год рождения
    let age = today.getFullYear() - dateOfBirthday.getFullYear();
    // Если ДР в этом году ещё предстоит, то вычитаем из age один год

    console.log(age)
}
age()
Ответить с цитированием