filtre and co 2
filtre & co 1
const products = [
Adetruire
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html {
scroll-behavior: smooth;
}
#partie_definition {
background-color: yellow;
}
</style>
</head>
<body>
<a href="./About/aboutme.html">About me</a>
<a href="https://www.ibisc.univ-evry.fr/~dupont/" target="_blank">Dupont</a>
<a href="./Images/47.jpg" download>me</a>
<a href="#partie_definition">definition</a>
<a href="mailto:denis.dupont@univ.fr">email</a>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt quae a earum minus officia. Quam, neque? Ea
nulla nisi dolore laudantium quia tenetur saepe maiores veniam consequuntur vel ab fugit
consectetur, ex quasi distinctio nihil laborum consequuntur animi qui! Fuga repudiandae necessitatibus
reiciendis fugiat eos cumque!</p>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Saepe exercitationem incidunt quam at beatae adipisci
aspernatur error et, odio itaque nam mollitia voluptas veritatis eveniet odit excepturi temporibus accusantiu
aspernatur vel eum cum porro numquam magni. Ipsum harum dolorum nisi deleniti blanditiis fugiat pariatur aut
ipsa nesciunt dolore! Autem cumque dignissimos saepe nihil eveniet sequi soluta pariatur dolor neque?</p>
<p id="partie_definition">Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste provident repellendus ipsam.
Eos mollitia
veritatis praesentium temporibus! Velit beatae incidunt voluptatum sunt, culpa laboriosam quia fuga at.</p>
<a href="#">Top</a>
</body>
</html>
filtre, map ...
Le chaînage des filtres élémentaires
Les filtres dans un tableaux !
- const pipeline = [
- function A,
- function B, ...
- ];
- for( let action of pipeline) {
- objet = action( objet );
- }
- const customFilter = (array, ...queries) => {
- return array.filter( pers => queries.every( query => query(pers) ));
- },
- resultQuery = customFilter(population,
- ( { nom } ) => nom == "SuperDupont",
- ( { born } ) => new Date().getFullYear() - born > 40,
- ( { sex } ) => sex == "f",
- ( { ville} ) => ville == "evry"
- );
👍 Améliorations
- const customFilter = (array, ...tests) => {
- return array.filter(pers => tests.every(t => t(pers)));
- }
- const filtre = (query) =>
- customFilter(population,
- ( {nom} ) => query.nom ? nom.toLowerCase() == query.nom : true,
- ( { born } ) => query.born ? new Date().getFullYear() - born > query.born : true,
- ( { sex } ) => query.sex ? sex == query.sex : true,
- ( { ville }) => query.ville ? ville.toLowerCase() == query.ville : true
- );
- const firstQuery = {
- nom:"dupont",
- born:40,
- sex:"f",
- ville:"paris",
- }
- console.log(filtre (firstQuery))
- const Evryens = {
- ville:"evry",
- }
- console.log(filtre (Evryens))
💪A step futher,
- nom = function ( {nom} ) { return nom.toLowerCase() == this.nom },
- age = function ( { born } ) { return new Date().getFullYear() - born > this.born},
- genre = function ( { sex } ) { return sex == this.sex},
- habite =function ( { ville }) { return ville.toLowerCase() == this.ville},
- customFilter = (array, query, ...tests) => {
- return array.filter(pers => tests.every(t => t.bind(query)(pers)));
- }
- const myQuery = {
- nom:"dupont",
- born:40,
- sex:"f",
- ville:"paris",
- }
- const query1 = customFilter(population, myQuery, nom,age,genre,habite);
- console.log(query1);
- const query2 = customFilter(population, myQuery, habite);
- console.log(query2)
test : flex
Donner le code CSS à écrire dans le simulateur (donner en dessous) pour obtenir les cinq figures suivantes.
Par exemple pour la figure suivante :