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
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
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}`);
["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}`);
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]
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)
<body>
<div>
<p><span></span></p>
<p></p>
</div>
<script>
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 ); //
- (5) [{…}, {…}, {…}, {…}, {…}]
- 0:{nom: "Brusel", sex: "h", born: 1980, n: "fr"}
- 1:{nom: "Charles", sex: "h", born: 2001, n: "fr"}
- 2:{nom: "Dupont", sex: "f", born: 2000, n: "fr"}
- 3:{nom: "Toto", sex: "f", born: 1991, n: "fr"}
- 4:{nom: "Dupont", sex: "h", born: 2002, n: "fr"}
- length:5
- __proto__:Array(0)
let annee = new Date().getFullYear(); // 2018
Ecrire les codes des fonctions :
T = transf(tabPers,setAge);
console.log( T ); //
- (5) [{…}, {…}, {…}, {…}, {…}]
- 0:{nom: "Brusel", sex: "h", age: 38}
- 1:{nom: "Charles", sex: "h", age: 17}
- 2:{nom: "Dupont", sex: "f", age: 18}
- 3:{nom: "Toto", sex: "f", age: 27}
- 4:{nom: "Dupont", sex: "h", age: 16}
- length:5
- __proto__:Array(0)
let u= filterMultArg(T, sexAge,{limiteAge:2,civilite:"h",pipo:"popi"});
console.log(u); //
console.log(u); //
- (3) [{…}, {…}, {…}]
- 0:{nom: "Brusel", sex: "h", age: 38}
- 1:{nom: "Charles", sex: "h", age: 17}
- 2:{nom: "Dupont", sex: "h", age: 16}
- length:3
- __proto__:Array(0)
filterMultArg(T, sexAge,{pipo:"popi"});
- // valeur par défauft limiteAge:18,civilite:"h"
- [{…}]
- 0:{nom: "Brusel", sex: "h", age: 38}
- length:1
- __proto__:Array(0)
// ou(filterMultArg(T, sexAge));
- [{…}]
- 0:{nom: "Brusel", sex: "h", age: 38}
- length:1
- __proto__:Array(0)
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))
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
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
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
Inscription à :
Articles (Atom)