<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@3.1.1" data-semver="3.1.1" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script data-require="faker@3.1.0" data-semver="3.1.0" src="https://cdnjs.cloudflare.com/ajax/libs/Faker/3.1.0/faker.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="check.js"></script>
<script src="filter.js"></script>
<script src="script.js"></script>
</head>
<body>
<iframe width="100%" frameborder="0" src="README.html"></iframe>
<h2>Adults</h2>
<h3 id="js-result">Waiting for filtering...</h3>
<pre id="js-result-data"></pre>
<h2>People</h2>
<pre id="js-data"></pre>
</body>
</html>
function generateAge() {
var age = 0;
while (age < 1 || age > 120)
age = faker.random.number();
return age;
}
function generatePerson() {
return {
name: faker.name.findName(),
age: generateAge()
};
}
function generateData() {
var people = [];
for (var i = 0; i < 100; i++)
people.push(generatePerson());
return people;
}
var people = generateData();
$(function() {
$('#js-data').html(JSON.stringify(people, null, 2));
var adults = filterAdults(people);
if (adults) {
if (compare(people, adults)) {
$('#js-result').html('Correct!').addClass('success');
} else {
$('#js-result').html('Wrong!').addClass('error');
}
$('#js-result-data').html(JSON.stringify(adults, null, 2));
}
});
body {
font-family: "Roboto", Helvetica, Arial, sans-serif;
}
#js-result {
color: lightgray;
}
#js-result.success {
color: green;
}
#js-result.error {
color: red;
}
# Istruzioni
Nel file `filter.js` implementa la funzione `filterAdults` in modo che restituisca
la lista di quelle che sono persone maggiorenni (cioè con `age` di almeno 18),
tra quelle generate.
function filterAdults(people) {
var adults = [];
// your filter here
// please, return an array with adults only
return adults;
}
function sortPeople(a, b) {
if (a.age < b.age)
return -1;
else if (a.age > b.age)
return 1;
else
return a.name < b.name ? -1 : 1;
}
function compare(people, adults) {
var myAdults = people.filter(function(p) {
return p.age >= 18;
}).sort(sortPeople);
var theirAdults = adults.sort(sortPeople);
return myAdults.every(function(a, i) {
return a.name === theirAdults[i].name && a.age === theirAdults[i].age;
});
}