<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// рандомайзер даты
function randomDate(start, end) {
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}
var pn = ['Alex', 'Mark', 'Victor', 'Maxim', 'Robert'],
pnf = pn[Math.floor(Math.random() * pn.length)]; // я не знаю, что это такое
var chislo = prompt('Введите ко-во массивов');
var massive = [];
for (let i = 0; i < chislo; i++) {
massive.push({
// не знаю, что такое d2, d1 и, в общем случае, исхожу из того, что я могу получить корректную дату,
// date: (new Date(Math.floor(Math.random() * (d2 - d1) + d1))).toDateString(),
date: randomDate(new Date(1960, 0, 1), new Date(2000, 0, 1)).toDateString(),
summ: Math.floor(Math.random() * (500 - 0 + 1)) + 0,
name: pn[Math.floor(Math.random() * pn.length)]
});
}
console.table(massive);
const initialValues = {
summ: 0, // самая высокая зп
summOfYears: 0, // сумма годов рождения
};
const {name, summOfYears} = massive.reduce((acc, curr) => {
const {summ, name} = acc.summ > curr.summ ? acc : curr;
return {
summ,
name,
summOfYears: acc.summOfYears + new Date(curr.date).getFullYear(),
};
}, initialValues);
const averageAge = summOfYears && Math.round(new Date().getFullYear() - summOfYears / massive.length);
if (name && averageAge) {
console.log(`Самый высокооплачиваемый ${name}`);
console.log(`В среднем ребятам ${averageAge}`);
}
// пока писал, подумал, что я немного издеваюсь, и это будет заметно в общем... вот более адекватное решение для вас
/*
var summOfYears = 0, // сумма годов рождения
whoWithMaxSalary = {}; // человек с самой высокой зп
massive.forEach((person) => {
whoWithMaxSalary = whoWithMaxSalary.summ > person.summ ? whoWithMaxSalary : person;
summOfYears += new Date(person.date).getFullYear();
});
// если summOfYears равна не нулю, тосчитаем средний возраст
const averageAge = summOfYears && Math.round(new Date().getFullYear() - summOfYears / massive.length);
if (whoWithMaxSalary.name && averageAge) {
console.log('Самый высокооплачиваемый: ' + whoWithMaxSalary.name);
console.log('В среднем ребятам: ' + averageAge);
}
*/
</script>
</body>
</html>