Pages

lecture

Analysez ce code :  

 







class BD {
constructor(db) {
    this.db = db;
  }

  /**
   * Finds items based on a query given as a JS object
   *
   * @param {object} query The query to match against (i.e. {name: 'paris'})
   * @param {function} callback   The callback to fire when the query has
   * completed running
   **/
  find(query, callback) {
    callback(
      this.db.filter(function (city) {
        for (const [key, value] of Object.entries(query)) {
          if (city[key] !== value) {
            return false;
          }
        }
        return true;
      })
    );
  }
}

// cities
const db = new BD([
  { name: "Vincennes", population: 40000 },
  { name: "Paris", population: 2161000 },
  { name: "roubais", population: 45000 },
]);
//console.log(s.db);

db.find({ population: 45000 }, function (cities) {
  for (let city of cities) {
    city["population"] = 50000;
  }
});

db.find({ name: "Paris" }, function (cities) {
  for (let city of cities) {
    city["capital"] = true;
  }
});

console.log(db);

db.find({ name: "Paris" }, function (cities) {
  const updatedCities = cities.map((city) => ({ ...city, capital: true }));
  console.log(updatedCities); // Only updated copies, db remains unchanged
});