Вывод дат за определенный год
Задача такая: при вводе в инпут года, надо чтоб ниже выводились даты за этот год (у меня выходит так, что выводятся просто даты). https://codepen.io/DmitriyKurtsev/pen/VwvdgXO?editors=1010
let inp = document.querySelector('.inp'),
btn = document.querySelector('.btn'),
out = document.querySelector('.out');
function yearEvents(input, out) {
let datesArray = {
'2004': [
{
'date': '23.08.2004',
},
{
'date': '13.09.2004',
},
],
'2005': [
{
'date': '01.01.2005',
},
{
'date': '31.13.2005',
},
]
},
yearsArray = [],
numDatesArray = [];
for (i in datesArray) {
yearsArray.push(i);
for (j in datesArray[i]) {
numDatesArray.push(datesArray[i][j].date);
}
}
for (let year = 0; year < yearsArray.length; year++) {
for (let date = 0; date < numDatesArray.length; date++) {
if (input.value == yearsArray[year]) {
out.innerHTML = numDatesArray[year];
}
}
}
}
btn.onclick = () => {
yearEvents(inp, out);
}
Ответы (1 шт):
Автор решения: mbfilipp
→ Ссылка
let inp = document.querySelector('.inp'),
btn = document.querySelector('.btn'),
out = document.querySelector('.out');
function yearEvents(input, out) {
let datesObject = {
"2004": [ { 'date': '23.08.2004' }, { 'date': '13.09.2004' } ],
"2005": [ { 'date': '01.01.2005' }, { 'date': '31.13.2005' } ]
}
Object.keys(datesObject).forEach(key => {
if(key == input.value) {
datesObject[key].forEach(key => {
out.innerHTML += key['date'] + "<br/>"
})
}
})
}
btn.onclick = () => {
out.innerHTML = ""
yearEvents(inp, out)
}
Мой вариант