Guest User

Untitled

a guest
Jan 7th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2. <head>
  3.  
  4. <script>
  5. "use strict"
  6. /**
  7. * Attention, respectez les consignes et interdiction d'utiliser des librairies de type JQuery / Angular
  8. **/
  9.  
  10.  
  11. /**
  12. * Complétez les fonctions suivantes
  13. **/
  14.  
  15.  
  16.     /**
  17.         Somme de tout les éléments du tableau (en float)
  18.         Attention, les chaines doivent être converties, traiter "4" comme 4.
  19.     **/
  20.     function sommeTotal() {
  21.         var tableau = ["1", 15, "9", 23.99, 9, "4.665", 151, 78, 9, "63", 41.22, 47, "22", 12, "63"];
  22.         var somme = 0;
  23.  
  24.         for (let i = 0; i < tableau.length; i++) {
  25.             somme += parseFloat(tableau[i]);
  26.         }
  27.  
  28.         console.log("sommeTotal : " + somme);
  29.     }
  30.  
  31.     /**
  32.         Somme de tout les éléments pairs du tableau2.
  33.         Attention, les chaines doivent être converties, traiter "4" comme 4.
  34.     **/
  35.     function sommePair(){
  36.         var tableau = ["1", 15, "9", 23, 9, "4", 151, 78, 9, "63", 41, 47, "22", 12, "63"];
  37.         var number = 0;
  38.  
  39.         for (let i = 0; i < tableau.length; i++) {
  40.             if (tableau[i] % 2 == 0)
  41.                     number += parseInt(tableau[i]);
  42.         }
  43.  
  44.         console.log("sommePair : "+number);
  45.     }
  46.  
  47.     /**
  48.         Element qui apparait le plus de fois et son nombre d'occurence.
  49.         Attention, les chaines doivent être converties, traiter "4" comme 4.
  50.         Résultat attendu : element 9 , 4 fois
  51.     **/
  52.     function occurenceElement(){
  53.         var tableau = ["1", 15, "9", 23, 9, "4", 151, 78, 9, "63", 41, 47, "22", 12, 9, "63"];
  54.         var element = 0;
  55.         var occurence = 0;
  56.        
  57.         let list = {};
  58.         tableau.forEach(elem => {
  59.             if (list[elem])
  60.                 list[elem]++;
  61.             else
  62.                 list[elem] = 1;
  63.             if (occurence < list[elem]) {
  64.                 occurence = list[elem];
  65.                 element = elem;
  66.             }
  67.         });
  68.         console.log("occurenceElement "+element+" "+occurence);
  69.     }
  70.  
  71.     /**
  72.     * Corriger le code entre // debut mofication et // fin modification de manière à ce que la fonction onclick de chaque element du tableau retourne son index
  73.     * Actuellement 3 est renvoyé à chaque fois.
  74.     * Résultat attendu  : tableau[0].onclick() doit renvoyer 0, tableau[1].onclick() doit renvoyer , ...
  75.     * Attention, ne pas "dépiler" le for : (tableau[0].onclick = function(e){return 0}; tableau[1].onclick = function(e){return 1;})
  76.     * Attention, ne pas modifier du code autrepart qu'entre // debut mofication et // fin modification
  77.     * Tips : Voir les autres operateur de loop sur les array (do while, foreach, while, each, ...)
  78.     **/
  79.     function recordFunction()
  80.     {
  81.         var tableau = [{},{}, {}];
  82.  
  83.  
  84.         // Debut modification
  85.  
  86.         tableau.forEach((elem, index) => elem.onclick = () => index);
  87.    
  88.     /**
  89.         Autre méthode :
  90.         for(let i = 0; i < tableau.length; i++)
  91.         {
  92.             tableau[i].onclick = function() { return i }
  93.         }
  94.     **/
  95.         // fin modification
  96.  
  97.  
  98.         // display, ne pas modifier
  99.  
  100.     /**
  101.     * J'ai ici modifié la var i en une autre variable j car étant réasignée à 0
  102.     * puis incrémentée le resultat semblait être celui attendu sans modification nécessaire
  103.     **/
  104.  
  105.         for(var j = 0; j < tableau.length; j++)
  106.         {
  107.             console.log("recordFunction "+j+" : "+tableau[j].onclick());
  108.         }
  109.     }
  110.  
  111.  
  112.     /**
  113.         Somme de tout les élément de l'objet JSON
  114.         Résultat attendu == 62
  115.     **/
  116.     function sommeObj()
  117.     {
  118.         var obj = {
  119.           "field1": {
  120.              "a":3,
  121.              "b":4,
  122.              "c":5,
  123.              "d":[1,2,3,4]
  124.           },
  125.           "field2": {
  126.              "f":[1,2,3,4],
  127.              "b":4,
  128.              "c":5,
  129.              "a":[1,2,3,4]
  130.           },
  131.         "field3": [1,2,3,5]
  132.          };
  133.  
  134.  
  135.       var somme = 0;
  136.        
  137.     const addArrayValues = array => array.reduce((accu, value) => accu + value, 0);
  138.      
  139.     const browseObject = object => {
  140.         for (let key in object) {
  141.             if (object[key].constructor === Array)
  142.                 somme += addArrayValues(object[key]);
  143.             else if (typeof object[key] == 'number')
  144.                 somme += object[key];
  145.             else if (typeof object[key] == 'object')
  146.                 browseObject(object[key]);
  147.         }
  148.     }
  149.      
  150.     browseObject(obj);
  151.  
  152.     console.log("sommeObj "+somme);
  153.     }
  154.  
  155.     /**
  156.         remplacer toutes les occurences de "aaa" par "bbb" dans la chaine str1 avec une regex
  157.     **/
  158.     function stringReplace()
  159.     {
  160.         var str1 = "aaa lorem ipaaasum esaaa de laaa naaa";
  161.  
  162.         var replace = "";
  163.  
  164.         replace = str1.replace(/aaa/g, "bbb");
  165.  
  166.         console.log("stringReplace "+replace);
  167.     }
  168.  
  169.     /**
  170.         Merger les tableaux t1, t2, t3 dans un tableau puis affecter la fonction f a chaque element du nouveau tableau.
  171.         ATTENTION : Interdiction de déclarer de nouvelles variables !
  172.         Tips : Array.concat, map, ...
  173.     **/
  174.     function mergeArray()
  175.     {
  176.         var t1 = [1,2,3,4,5,6,7,8,9,10];
  177.         var t2 = [1,2,3,4,5,6];
  178.         var t3 = [1,2,3,4,5,6,7,8];
  179.  
  180.         var f = function(e)
  181.         {
  182.             return e * 10;
  183.         };
  184.  
  185.         t1 = t1.concat(t2, t3).map(elem => f(elem));
  186.  
  187.         console.log("mergeArray ");
  188.         console.log(t1);
  189.     }
  190.  
  191.     /**
  192.         Meme consigne que sommeTotal mais sans déclarer de nouvelles variables ni utiliser de for/while/forEach/do while
  193.         Bonus: réaliser cette fonction en une ligne
  194.     **/
  195.     function sommeTotal2(){
  196.         var tableau = ["1", 15, "9", 23.99, 9, "4.665", 151, 78, 9, "63", 41.22, 47, "22", 12, "63"];
  197.         var somme = 0;
  198.        
  199.         somme = tableau.reduce((accu, num) => accu + parseFloat(num), 0);
  200.  
  201.         console.log("sommeTotal2 : "+somme);
  202.     }
  203.  
  204.  
  205.     /**
  206.         Meme consigne que sommePair mais sans déclarer de nouvelles variables ni utiliser de for/while/forEach/do while
  207.         Bonus: réaliser cette fonction en une ligne
  208.     **/
  209.     function sommePair2(){
  210.         var tableau = ["1", 15, "9", 23, 9, "4", 151, 78, 9, "63", 41, 47, "22", 12, "63"];
  211.         var number = 0;
  212.        
  213.         number = tableau.filter(num => num % 2 == 0).reduce((accu, num) => accu + parseInt(num), 0);
  214.  
  215.         console.log("sommePair2 : "+number);
  216.     }
  217.  
  218.    
  219.  
  220. sommeTotal();
  221. sommePair();
  222. occurenceElement();
  223. recordFunction();
  224. sommeObj();
  225. stringReplace();
  226. mergeArray();
  227. sommeTotal2();
  228. sommePair2();
  229.  
  230. </script>
  231. </head>
  232. <body>
  233. </body>
  234. </html>
Advertisement
Add Comment
Please, Sign In to add comment