Pages

MAX DES COLONNES

JS Bin on jsbin.com

let t = T[0].map( (_,col)=> T.map( (lig,_)=>lig[col]).reduce(function(a, b) {
  return Math.max(a,b);
})
);

JS Bin on jsbin.com

DS

http://duponttd.blogspot.fr/2016/10/ds-1h.html

map et destructuring !

const article = [
["title", 'Hello Template Literals'],
        ["teaser", 'String interpolation is awesome. Here are some features'],
        ["body", 'Lots and lots of sanitized HTML'],
        ["tags", ['es6', 'template-literals', 'es6-in-depth']]
]

let [title,teaser,body,tags] = article;
let html = `<article>
  <header>
    <h1>${title[1]}</h1>
  </header>
  <section>
    <div>${teaser[1]}</div>
    <div>${body[1]}</div>
  </section>
  <footer>
    <ul>
      ${tags[1].map(tag => `<li>${tag}</li>`).join('')}
    </ul>
  </footer>
</article>`

document.body.innerHTML= (`${html}`);

transposé !

Obkect Keys en action

const villeHabitants = {Marseille:1000000,
                        Avignon:50000,
                        alancon:23000,
                        grenoble:110000,
                        lyon:450000,
                        Paris:2700000};


Trouvez la somme des habitants des villes dont les lettres commencent par [a-l]

compléter le code

let w = (n,t="\u23EC") => {
  
  console.log(`${t}${n.nodeName}`);

  n = n.firstElementChild;
  while (n){
    w(n,`\u23E9${t}`);
   // To-Do
  }
}

w(document.body)

Test

pour  HTML
<body>
<div>
  <p><span></span></p>
  <p></p>
</div>

<script>

Travail à rendre



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"
 },
];

Console.log( tabPers ); //
  1. (5) [{…}{…}{…}{…}{…}]
    1. length:5


let annee = new Date().getFullYear(); // 2018

Ecrire les codes des fonctions :


T = transf(tabPers,setAge);
console.log( T ); //
  1. (5) [{…}{…}{…}{…}{…}]
    1. length:5
let u= filterMultArg(T, sexAge,{limiteAge:2,civilite:"h",pipo:"popi"});

console.log(u); //
  1. (3) [{…}{…}{…}]
    1. length:3


filterMultArg(T, sexAge,{pipo:"popi"});
  1. // valeur par défauft limiteAge:18,civilite:"h"
    1. [{…}]
      1. length:1


// ou(filterMultArg(T, sexAge));

  1. [{…}]
    1. length:1

peut on éviter switch case ?

function decomposition_nombres_premiers(n=1) {
 
  if (n==1) return [1];
  let p = [];
  for (let i = 2; i <= n; i++){
    while (n % i === 0){
      p.push(i);
      n /= i;
    }
  }
 
  let countedFactor = p.reduce(function (allPremiers, premier) {
      if (premier in allPremiers) {
  allPremiers[premier]++;
  }
  else {
    allPremiers[premier] = 1;
  }
  return allPremiers;
  }, {});
 
 
 
  return {p,countedFactor};
};

let nb = 1028;
let {p,countedFactor} = decomposition_nombres_premiers(nb);

console.log(p,countedFactor);

let result=`${nb} = `;
for (var [cle, valeur] of Object.entries(countedFactor)){
  switch (valeur) {
  case 1:
    result+=` ${cle} x`;
    break;
  case 2:
    result+=` ${cle}\u00B2 x`;
    break;
  case 3:
    result+=` ${cle}\u00B3 x`; 
    break;
  case 4:
    result+=` ${cle}\u2074 x`;
    break;
  case 5:
    result+=` ${cle}\u2075 x`;
    break;
  case 6:
    result+=` ${cle}\u2076 x`;
    break;
  case 7:
    result+=` ${cle}\u2077 x`;
    break;
  case 8:
    result+=` ${cle}\u2078 x`;
    break;
  case 9:
    result+=` ${cle}\u2079 x`;
    break;
  default:
    result+=` ${cle}(${valeur}) x`;
  }
  }
 
  console.log(result= result.substring(0, result.length - 1))

Projet : DOM

Supprimer document.write par la création d'éléments du dom

projet DOM

Parcourir le DOM à l'aide du programme récursif vu en cours à la recherche des nœuds contenant un texte.
Si le nœud contient le string recherché, on met le nœud en rouge.

Exemple : 

tapez le code suivant dans l'onglet HTML de jsbin ou jsfiddle puis TAB(juste après 3)

article{article $}>section{section $}*2>p{para $}*3

Code : 
Rechercher tous les noeuds contenant le texte "2" et ajouter la classe "red" à ces paragraphes.

Difficulté : 
Lors de votre parcours, vous ne pourrez pas utiliser la granularité sur les éléments et un test du style :
node.innerHTML.indexOf(string) > -1

innerHTML prend en compte le contenu de tout les enfants !
http://jsbin.com/yihipab/4/edit?html,css,js,console,output


aide : 
http://duponttd.blogspot.fr/2017/12/parcourir-le-dom-how-to.html

http://duponttd.blogspot.fr/2016/11/etude-du-recursif-en-profondeur.html


En action :

http://dupontdom.blogspot.fr/p/dom-fonction.html