Trans multi

arg = { } / multi

by DupontTD

JavaScript

let tabPers = [
  {
    nom: "Brusel",
    sex : "h",
    born: 1980,
        n:"fr"
  },
  {
    nom: "Charles",
    sex : "h",
    born: 2001,
        n:"fr"
  },
  {
    nom: "Dupont",
    sex : "f",
    born: 2000,
        n:"fr"
  },  
 {
    nom: "Toto",
    sex : "f",
    born: 1991,
         n:"fr"
  },
  {
    nom: "Dupont",
    sex : "h",
    born: 2002,
        n:"fr"
  },
];

let annee = new Date().getFullYear();
function setAge({nom,sex,born}) {
    age = annee - born;
  return {nom,sex,age};
}
function setAge({nom,sex,born}) {
    let age = annee - born;
  return {nom,sex,age};
}


function filterMultArg(array, test,argObj) {
  let passed = [];
  for (let val of array) {
    if (test(val, argObj ))
      passed.push(val);
  }
  return passed;
}

function sexAge({sex,age},  {limiteAge=18,civilite="h"} = {} ) {
    console.log(limiteAge,civilite);
    return (sex === civilite  && age > limiteAge);
}
function transf(array, fx) {
  let passed = [];
  
  for(let v  of array)
        passed.push(fx(v));

  return passed;
}


let T = transf(tabPers,setAge);
console.log(filterMultArg(T, sexAge,{limiteAge:2,civilite:"h",pipo:"popi"}));
console.log(filterMultArg(T, sexAge,{pipo:"popi"}));
console.log(filterMultArg(T, sexAge));