JS. Date. Associative array. Как вывести данные корректно?
В программе в поле ввода вводим дату рождения, например 01.01.2000 , жмем на кнопку "показать" , и из массива people с помощью цикла пробегаемся по нему и должно вывести людей, у которых дни рождения попадают на эту дату. Почему то в итоге выводится только 1 человек, либо не вводится ни одного, хотя в массиве есть 2 человека с одинаковой датой рождения, в чем может быть дело? В консоли все выводится корректно.
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Date of birthday</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Date of birthday</h1>
</header>
<div class="">
<label for="title">Введите дату:</label>
<input
type="date"
id="date" >
<button
class="btn"
onclick="dateresult()">
Показать</button>
</div>
<hr>
<p>Результат:</p>
<div id="out"></div>
<script src="project.js"></script>
</body>
</html>*
project.js
function dateresult(){
let num1 = document.getElementById('date').value;
const people = [
{name: 'Vlad', birthday: "2000-03-01"},
{name: 'Elena', birthday: "2000-05-01"},
{name: 'Victoria', birthday: "2000-03-01"},
{name: 'Tom', birthday: "2000-07-01"}
]
for (const person of people) {
if (person.birthday === num1) {
let findedPerson = person.name
console.log(findedPerson)
document.getElementById('out').innerHTML=findedPerson
}
else{
document.getElementById('out').innerHTML = "Дней рождений на эту дату нет";
}
}
}
Ответы (1 шт):
Вы переменную let findedPerson = person.name переписываете новым значением стирая старое ответ на "Почему то в итоге выводится только 1 человек".
В findedPerson нужно добавлять новую дату на случай если людей с одной датой больше чем один и потом уже записывать в document.getElementById('out').innerHTML=findedPerson.