Pages

callback bis

Etudier le code précédent : https://jsfiddle.net/dupont/Lgre6msz/2/

On peut changer le code avec

class BD{


/**
* Finds items based on a query given as a JS object
*
* @param {function} function The function to filtre the query
* @param {function} callback   The callback to fire when the query has
* completed running
**/
    find ( fxFilter, callback) {

        callback(this.villes.filter( fxFilter))
     }
 

Callback

class BD{

    constructor(villes){
        this.villes = villes;
    }
   

/**
* Finds items based on a query given as a JS object
*
* @param {object} query The query to match against (i.e. {ville: 'paris'})
* @param {function} callback   The callback to fire when the query has
* completed running
**/
    find (query, callback) {

        callback(this.villes.filter(function(ville) {       
          for (let key in query) {
            if (query[key] !== ville[key]) {
              return false
            }
          }
          return true
        }))
      }
  }

// création d'une base
  bd = new BD([{ville:"vincennes",h:2},{ville:"paris",h:2},{ville:"roubais",h:1}]);

document.body.insertAdjacentHTML("beforeend",`<session>${JSON.stringify(bd.villes)}</session><p> 1`)


  bd.find({h:2},function(villes){
      for(let ville of villes){
        ville["h"]=30;
      }
  });
document.body.insertAdjacentHTML("beforeend",`<session>${JSON.stringify(bd.villes)}</session><p> 2`)

  bd.find({ville:"paris"},function(villes){
    for(let ville of villes){
       ville["capitale"]=true;
    }
});

document.body.insertAdjacentHTML("beforeend",`<session>${JSON.stringify(bd.villes)}</session><p>`)
 


https://jsfiddle.net/dupont/Lgre6msz/2/

findof versus filter

https://jsfiddle.net/dupont/s81evw7q/5/

Map en action

let p = '<h1>escapeForHTML<h1>';



let regex = /[<>&]/gi;



let r = new Map([
  ['>','&gt;'],

  ['&','&amp;'],

  ['<', '&lt;'],

]);


let f = c => r.get(c)


document.body.insertAdjacentHTML("afterbegin",p);

document.body.insertAdjacentHTML("afterbegin",p.replace(regex,f));