From a8efb266296842470c9b9b638f9c4d8c0f4fb2b8 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 28 Mar 2022 15:22:25 +0200 Subject: [PATCH 01/28] =?UTF-8?q?Teil=20Aufgaben=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/MeineLoesung/flowControll.js | 115 +++++++++++++++++++ src/exercises/MeineLoesung/objectAufgaben.js | 37 ++++++ src/exercises/Webseiteuebung/index.html | 38 ++++++ src/exercises/flow-control.md | 2 +- 4 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 src/exercises/MeineLoesung/flowControll.js create mode 100644 src/exercises/MeineLoesung/objectAufgaben.js create mode 100644 src/exercises/Webseiteuebung/index.html diff --git a/src/exercises/MeineLoesung/flowControll.js b/src/exercises/MeineLoesung/flowControll.js new file mode 100644 index 0000000..f28f42d --- /dev/null +++ b/src/exercises/MeineLoesung/flowControll.js @@ -0,0 +1,115 @@ +//Aufgabe 1 +//Variante 1 +let name = " Claudia" +let alter = 101; +let hiChild = "Hoi " + name; +let hiTeen = "Hallo" + name; +let grüezi = "gruezi"+ name; +let alte = "Grüss Gott" + name; + +if(alter <= 10 ){ + console.log(hiChild); +} +else if(alter <= 18 ){ + console.log(hiTeen); +} +else if( alter <= 100){ + console.log(grüezi); +}else { + console.log(alte); +} + +//Variante 2 +if(alter <= 10){ + console.log(hiChild); +} +if (alter > 10 && alter <= 18){ + console.log(hiTeen); +} +if (alter > 18 && alter <=100){ + console.log(grüezi); +} +if (alter > 100){ + console.log(alte); +} + +//Aufgabe 2 +//Varainte 1 +let age = 61 +let betrag = 0; + +if(age < 5){ + betrag; +} +else if(age <= 15){ + betrag = 5; +} +else if(age <= 60){ + betrag = 15; +} +else { + betrag = 10; +} + +console.log(betrag + "fr.-") + +//Variante 2 + +if(age < 5){ + betrag; +} +if(age >= 5 && age <= 15){ + betrag= 5; +} +if(age > 15 && age <= 60){ + betrag = 15; +} +if(age > 60){ + betrag = 10; +} +console.log(betrag + "fr.-") + +//Aufgabe 3 + + + + + +//Schleifen / Loops + +//Aufgabe 2 +//Variante 1 +let numbers = [1,2,3] +let result = []; + +for (let number of numbers){ + if(number %2 === 0){ + result.push(true) + + }else{ + result.push(false); + } +} + +// Variante 2 als Funktion +function numberToBoolean(...numbers){ + let result =[] + for (let number of numbers){ + result.push(number % 2 === 0) +} +return result; +} +console.log(result) + +//Array Spreaden wieder auspacken +const numberArray = [1,2,3,4] +console.log(numberToBoolean(...numberArray)); + +//rest parameter einzelne zahlen werden zu einem array zusammengefasst +numberToBoolean(1,2,3,4,5,6); +console.log(numberToBoolean(1,2,3,4,5,6)) + + + + + diff --git a/src/exercises/MeineLoesung/objectAufgaben.js b/src/exercises/MeineLoesung/objectAufgaben.js new file mode 100644 index 0000000..c4696e6 --- /dev/null +++ b/src/exercises/MeineLoesung/objectAufgaben.js @@ -0,0 +1,37 @@ +//Aufgabe 1 +//Definiere eine Liste von mehreren User Objekten. Jeder User hat einen Namen und eine Punktezahl. + +const user1 = { + name: "ueli", + score: 2, +}; +const user2 = { + name: "Cla", + score: 1, +}; + +let userList = [user1, user2]; +//Aufgabe2 +//Finde den User mit der höchsten Punktezahl +//Variante 1 +let winner = null; + +for (const user of userList) { + if (winner === null || winner.score < user.score) { + winner = user; + } +} +console.log(winner); + +//Variante 2 +for (const user of userList) { + if (winner === null) { + winner = user; + } else if (winner.score < user.score) { + winner = user; + console.log(winner); + } +} +console.log(winner); + + diff --git a/src/exercises/Webseiteuebung/index.html b/src/exercises/Webseiteuebung/index.html new file mode 100644 index 0000000..e0d77ef --- /dev/null +++ b/src/exercises/Webseiteuebung/index.html @@ -0,0 +1,38 @@ + + + + + + + Zahlenraten + + +

Finde die Geheimzahl!

+
0
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ + + + diff --git a/src/exercises/flow-control.md b/src/exercises/flow-control.md index 10846b2..63d4ab3 100644 --- a/src/exercises/flow-control.md +++ b/src/exercises/flow-control.md @@ -42,7 +42,7 @@ Gib die Entscheidung auf der Console aus. Schreibe zwei Varianten, - eine Variante mit switch case -- eine Variante mit && und || (ohne ganz ausgeschriebene if) +- eine Variante mit && und || (ohne ganz ausgeschriebene if) Ternäre if ## Schleifen / Loops From caae48d1aa4ccf27c4812391f0aa1b62238e7312 Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 1 Apr 2022 20:43:33 +0200 Subject: [PATCH 02/28] Aufgaben Teil1 --- src/exercises/MeineLoesung/flowControll.js | 57 +++---- .../MeineLoesung/schleifenAufgaben.js | 152 ++++++++++++++++++ src/types.js | 1 + 3 files changed, 178 insertions(+), 32 deletions(-) create mode 100644 src/exercises/MeineLoesung/schleifenAufgaben.js diff --git a/src/exercises/MeineLoesung/flowControll.js b/src/exercises/MeineLoesung/flowControll.js index f28f42d..7699733 100644 --- a/src/exercises/MeineLoesung/flowControll.js +++ b/src/exercises/MeineLoesung/flowControll.js @@ -1,10 +1,12 @@ -//Aufgabe 1 +//If und switch case +"use strict" +//Aufgabe 1 //Variante 1 let name = " Claudia" -let alter = 101; +let alter = 100; let hiChild = "Hoi " + name; let hiTeen = "Hallo" + name; -let grüezi = "gruezi"+ name; +let grüezi = "Gruezi"+ name; let alte = "Grüss Gott" + name; if(alter <= 10 ){ @@ -70,44 +72,35 @@ if(age > 60){ console.log(betrag + "fr.-") //Aufgabe 3 +//Variante 1 +let geschlecht = "w"; +let age1 = 18 +let enter = false; +switch (geschlecht){ + case "w": + enter = age1 >= 18; + break; + case "m": + enter = age1 >= 20; + break; + default: + enter = false; +} +console.log(`Darf die Person des Geschlechts ${geschlecht} hinein? --> ${enter}`); +//Variante 2 + 3 Ternäre schreibweise +let enter1 = (age1 >= 18 && geschlecht === "w") || (age1 >= 20 && geschlecht === "m") +let enter2 = (age1 >= 18 && geschlecht === "w") || (age1 >= 20 && geschlecht === "m")? "Darf hinein":"Darf nicht hinein" +console.log(enter1) +console.log(enter2) -//Schleifen / Loops - -//Aufgabe 2 -//Variante 1 -let numbers = [1,2,3] -let result = []; -for (let number of numbers){ - if(number %2 === 0){ - result.push(true) - }else{ - result.push(false); - } -} - -// Variante 2 als Funktion -function numberToBoolean(...numbers){ - let result =[] - for (let number of numbers){ - result.push(number % 2 === 0) -} -return result; -} -console.log(result) -//Array Spreaden wieder auspacken -const numberArray = [1,2,3,4] -console.log(numberToBoolean(...numberArray)); -//rest parameter einzelne zahlen werden zu einem array zusammengefasst -numberToBoolean(1,2,3,4,5,6); -console.log(numberToBoolean(1,2,3,4,5,6)) diff --git a/src/exercises/MeineLoesung/schleifenAufgaben.js b/src/exercises/MeineLoesung/schleifenAufgaben.js new file mode 100644 index 0000000..07f1e88 --- /dev/null +++ b/src/exercises/MeineLoesung/schleifenAufgaben.js @@ -0,0 +1,152 @@ +//Schleifen / Loops +//Aufgabe 0 +string = "Pinguin" +console.log(string[0] + ", ", string[1] + ", ", string[2] + ", ", string[3] + ", ", string[4] + ", ", string[5] + ", ", string[6]) + +let stringKomma = "" + +for (let i = 0; i < string.length; i++) { + if (i === string.length - 1) { + stringKomma += string[i] + "" + } else { + stringKomma += string[i] + ", " + } +} +console.log(stringKomma) + +// Aufgabe 1 +//Variante 1 +let sum = 0 +let prices = [1, 2, 3] + +for (const price of prices) { + sum += price + console.log(sum) +} +console.log(" Total sum of = " + sum) + +//Variante 2 +let sum1 = 0 +for (let i = 0; i < prices.length; i++) { + sum1 += prices[i] + console.log(sum1) +} +console.log(" Total sum of = " + sum1) + +//Variante 3 +let sum2 = 0; +let i = 0; + +while (i < prices.length){ + sum2 += prices[i] + i++ + console.log(sum2) +} +console.log(" Total sum of = " + sum2) + +//Aufgabe 2 +//Variante 1 +let numbers = [1,2,3] +let result = []; + +for (let number of numbers){ + if(number %2 === 0){ + result.push(true) + + }else{ + result.push(false); + } +} + +// Variante 2 als Funktion +function numberToBoolean(...numbers){ + let result =[] + for (let number of numbers){ + result.push(number % 2 === 0) + } + return result; +} +console.log(result) + +//Array Spreaden wieder auspacken +const numberArray = [1,2,3,4] +console.log(numberToBoolean(...numberArray)); + +//rest parameter einzelne zahlen werden zu einem array zusammengefasst +numberToBoolean(1,2,3,4,5,6); +console.log(numberToBoolean(1,2,3,4,5,6)) + +//Aufgabe 3 +let sentence = "Ich weiss, dass ich nichts weiss ... !" +let capitalSentence = "" + +for (let i = 0; i < sentence.length; i++) { + let char = sentence[i] + if (i === 0){ + char = char.toUpperCase() + console.log(char) + } + if (char === " "){ + capitalSentence += " " + sentence[++i].toUpperCase() + console.log(capitalSentence) + }else { + capitalSentence += char + } +} +console.log(capitalSentence) + +//Aufgabe 4 +// +/*Eine Primzahl ist eine Zahl, die nur durch sich selbst und durch 1 ohne Rest teilbar ist. + Eine Primzahl ist immer eine natürliche Zahl. + Die 0 und die 1 sind jedoch keine Primzahlen.*/ + +let number = 2; +let isPrime = true + + for (let i = 2; i < number; i++) { + if (number === 0 || number === 1 ){ + isPrime = false + } + if (number % i === 0){ + isPrime = false + } + if (number <= 100){ + number++ + }else { + break + } + +} +if (isPrime)console.log(number) + + + + +let n = 0 +while (n++ < 100) { + let isPrime = true + for (let i = 2; i < n; i++) { + if (n % i === 0) { + isPrime = false + break + } + } + if (isPrime) console.log(n) +} + +//Aufgabe 5 +let normalText = "Claudia Martinez" +let caesarText = "" +let shift = 1 + +for (let j = 0; j < normalText.length; j++) { + if (normalText[j] === " "){ + caesarText += " " + } + let charCode = normalText.charCodeAt(j) + shift + caesarText += String.fromCharCode(charCode).toUpperCase() + console.log(caesarText) +} +console.log(caesarText) + diff --git a/src/types.js b/src/types.js index 9e87fd6..944e715 100644 --- a/src/types.js +++ b/src/types.js @@ -18,6 +18,7 @@ x++ // evaluate than increment + //String let sa = 'hallo wasdfölkajsfdgelt' From ae736be8ebc50e5e90b769215c26901fe0ac790c Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 1 Apr 2022 21:53:51 +0200 Subject: [PATCH 03/28] Bug Quersumme --- .../MeineLoesung/schleifenAufgaben.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/exercises/MeineLoesung/schleifenAufgaben.js b/src/exercises/MeineLoesung/schleifenAufgaben.js index 07f1e88..2d0e0fa 100644 --- a/src/exercises/MeineLoesung/schleifenAufgaben.js +++ b/src/exercises/MeineLoesung/schleifenAufgaben.js @@ -150,3 +150,49 @@ for (let j = 0; j < normalText.length; j++) { } console.log(caesarText) +//Aufgabe 6.1 +let mixedNumbers = [1, 5, -10, 6.7, 45] +let integers = [] + +for (const integer of mixedNumbers) { + if (integer % 1 === 0){ + integers.push(integer) + } +} +console.log(integers) + +//6.2 +let positivNumbers = [] + +for (const positivNumber of mixedNumbers) { + if (positivNumber > 0){ + positivNumbers.push(positivNumber) + } +} +console.log(positivNumbers) + +//6.3 + +/****************************************/ +//???? Fehler +let querSumme = 0; +for (let i = 0; i < mixedNumbers.length; i++){ + if (mixedNumbers[i] <= 9){ + querSumme += mixedNumbers[i] + } + /*while (mixedNumbers[i]) { + querSumme += mixedNumbers[i] % 10; + mixedNumbers[i] = Math.floor(mixedNumbers[i] / 10); + }*/ +} +console.log(querSumme) + +//6.4 +let zwischenSum = 0; +let durchschnitt = 0; +for (let j = 0; j < mixedNumbers.length; j++) { + zwischenSum += mixedNumbers[j] + +} +durchschnitt = zwischenSum / mixedNumbers.length +console.log(durchschnitt) From bb26d8f531c0389c756582360d4ea5b9a8b69fd0 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sat, 2 Apr 2022 18:00:55 +0200 Subject: [PATCH 04/28] =?UTF-8?q?Aufgaben=20gel=C3=B6st=20bis=20auf=20Quer?= =?UTF-8?q?summe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeineLoesung/schleifenAufgaben.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/exercises/MeineLoesung/schleifenAufgaben.js b/src/exercises/MeineLoesung/schleifenAufgaben.js index 2d0e0fa..4accd50 100644 --- a/src/exercises/MeineLoesung/schleifenAufgaben.js +++ b/src/exercises/MeineLoesung/schleifenAufgaben.js @@ -196,3 +196,52 @@ for (let j = 0; j < mixedNumbers.length; j++) { } durchschnitt = zwischenSum / mixedNumbers.length console.log(durchschnitt) + +//7.1 +let zeichenKette = "Ich habe keine Ahnung" +let neueZeichenKette = "" + +for (let i = 0; i < zeichenKette.length; i++) { + if (i % 2 === 0){ + neueZeichenKette += zeichenKette[i].toLowerCase() + }else { + neueZeichenKette += zeichenKette[i].toUpperCase() + } +} +console.log(neueZeichenKette) + + +// 7.2 +let konstanten = ["b","c","d","g","h","k","m","n","p","r","s","t","w"] +let selbstlaute = ["be", "ce", "de", "ge", "ha", "ka", "äm", "än", "pe", "är", "äs", "te", "we"] +let tauschString = "" +for (let i = 0; i < zeichenKette.length; i++) { + if (konstanten.includes(zeichenKette[i].toLowerCase())){ + let tausch = konstanten.indexOf(zeichenKette[i].toLowerCase()) + tauschString += selbstlaute[tausch] + }else{ + tauschString += zeichenKette[i] + } +} +console.log(tauschString) + +// 7.3 +//Variante 1 +let reverseZeichenKette = "" + +for (let i = zeichenKette.length -1; i >= 0 ; i--) { + reverseZeichenKette += zeichenKette[i] +} +console.log(reverseZeichenKette) + +//Variante 2 +let stringArr1 = zeichenKette.split('') +let reversed1 = stringArr1.reverse().join('') +console.log(reversed1) + + +// 7.4 + +let stringArr2 = zeichenKette.split(' ') +let reversed2 = stringArr2.reverse().join(' ') +console.log(reversed2) \ No newline at end of file From 0f387f35e9e02860f4db456bcec603bed44e05de Mon Sep 17 00:00:00 2001 From: Claudia Date: Sat, 2 Apr 2022 18:47:08 +0200 Subject: [PATCH 05/28] =?UTF-8?q?Fibonacci=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/fibonacci.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/exercises/fibonacci.js b/src/exercises/fibonacci.js index dc3319f..5e0957e 100644 --- a/src/exercises/fibonacci.js +++ b/src/exercises/fibonacci.js @@ -2,3 +2,17 @@ // Berechne die Fibonacci Folge für n Elemente, beginnend bei 0. // Gib alle berechneten Elemente aus. +function fibonacci (anzahlElemente){ + let fibonacciArr = [0, 1] + + for (let i = 2; fibonacciArr.length < anzahlElemente; i++) { + console.log(i) + fibonacciArr.push(fibonacciArr[i-2] + fibonacciArr[i-1]) + } + return fibonacciArr +} + +let result = fibonacci(10) +console.log(result) + + From 97991c0bdad90698d62a5f23b884af6f357511dc Mon Sep 17 00:00:00 2001 From: Claudia Date: Sat, 2 Apr 2022 18:48:32 +0200 Subject: [PATCH 06/28] =?UTF-8?q?Fibonacci=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/fibonacci.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/exercises/fibonacci.js b/src/exercises/fibonacci.js index 5e0957e..b79692e 100644 --- a/src/exercises/fibonacci.js +++ b/src/exercises/fibonacci.js @@ -7,6 +7,7 @@ function fibonacci (anzahlElemente){ for (let i = 2; fibonacciArr.length < anzahlElemente; i++) { console.log(i) + // Addiere die zahlen von fiboarray[index (letzte zahl)] + fiboarray[index (zweitletzte zahl)] fibonacciArr.push(fibonacciArr[i-2] + fibonacciArr[i-1]) } return fibonacciArr From 2af46620784c21a60f131b584c05cd5e06b34058 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sat, 2 Apr 2022 21:20:02 +0200 Subject: [PATCH 07/28] Aufgaben object fertig --- src/exercises/MeineLoesung/objectAufgaben.js | 112 ++++++++++++++++--- 1 file changed, 99 insertions(+), 13 deletions(-) diff --git a/src/exercises/MeineLoesung/objectAufgaben.js b/src/exercises/MeineLoesung/objectAufgaben.js index c4696e6..917540b 100644 --- a/src/exercises/MeineLoesung/objectAufgaben.js +++ b/src/exercises/MeineLoesung/objectAufgaben.js @@ -2,36 +2,122 @@ //Definiere eine Liste von mehreren User Objekten. Jeder User hat einen Namen und eine Punktezahl. const user1 = { - name: "ueli", - score: 2, + name: "Ueli", + score: 25453534535345, }; const user2 = { - name: "Cla", - score: 1, + name: "Claudia", + score: 300, }; let userList = [user1, user2]; + //Aufgabe2 //Finde den User mit der höchsten Punktezahl //Variante 1 let winner = null; for (const user of userList) { - if (winner === null || winner.score < user.score) { - winner = user; - } + if (winner === null || winner.score < user.score) { + winner = user; + } } console.log(winner); //Variante 2 for (const user of userList) { - if (winner === null) { - winner = user; - } else if (winner.score < user.score) { - winner = user; - console.log(winner); - } + if (winner === null) { + winner = user; + } else if (winner.score < user.score) { + winner = user; + console.log(winner); + } } console.log(winner); +//Aufgabe 3 + +let row1 = "|Name|Punkte|" +let row2 = "|----|-----|" +let row3 = "|" + user1.name + "| " + user1.score + "|" +let row4 = "|" + user2.name + "| " + user2.score + "|" + +let rowArr = [row1, row2, row3, row4] + +list = rowArr.join("\n") +console.log(list) +//Aufgabe 4 +//längster name +//Länge der höchsten Punktezahl.??? was ist damit gemeint? +function longestName (){ + let winner2 = null; + + for (const user of userList) { + if (winner2 === null || winner2.name.length < user.name.length) { + winner2 = user; + } + } + return winner2.name.length +} + +console.log(longestName()) + +function longestScore(){ + let winnerScoreLength = null; + + for (const user of userList) { + if (winnerScoreLength === null || winnerScoreLength.score.toString().length < user.score.toString().length) { + winnerScoreLength = user; + } + } + return winnerScoreLength.score.toString().length +} + +console.log(longestScore()); + + + +// Augabe 5 +let rows = [] +let longestUsername = longestName() +let longestUserScore = longestScore() + +// Check if HeaderName/Punkte length is longer than de longest Username or longest Score length +function lengthCheck(value1, value2){ + if (value1 > value2){ + return value1 + }else{ + return value2 + } +} + +let longestInNameRow = lengthCheck(longestUsername, "name".length) +let longestInPunkteRow = lengthCheck(longestUserScore, "Punkte".length) + +let headerRowName = "Name".padEnd(longestInNameRow) +let headerRowPunkte = "Punkte".padEnd(longestInPunkteRow) + +let nameBorder = "-".repeat(longestInNameRow) +let punkteBorder = "-".repeat(longestInPunkteRow) + +let headerCells = ['', headerRowName, headerRowPunkte, '']; +let borderCells = ['', nameBorder, punkteBorder, '']; + +let headerRow = headerCells.join('|'); +let borderRow = borderCells.join('|'); + +rows.push(headerRow) +rows.push(borderRow) + +for(const user of userList){ + const paddedName = user.name.padEnd(longestInNameRow) + const paddedScore = user.score.toString().padEnd(longestInPunkteRow) + const userCells = ['', paddedName, paddedScore, ''] + const userRow = userCells.join('|') + + rows.push(userRow) +} +list = rows.join('\n') +console.log(list) + From 08b22919fd8a0e788bf3a1568b8a68695989142a Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 3 Apr 2022 19:35:33 +0200 Subject: [PATCH 08/28] =?UTF-8?q?Aufgaben=20Quersumme=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeineLoesung/schleifenAufgaben.js | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/exercises/MeineLoesung/schleifenAufgaben.js b/src/exercises/MeineLoesung/schleifenAufgaben.js index 4accd50..3179c8d 100644 --- a/src/exercises/MeineLoesung/schleifenAufgaben.js +++ b/src/exercises/MeineLoesung/schleifenAufgaben.js @@ -151,7 +151,7 @@ for (let j = 0; j < normalText.length; j++) { console.log(caesarText) //Aufgabe 6.1 -let mixedNumbers = [1, 5, -10, 6.7, 45] +let mixedNumbers = [1, 5, -10, 6.7, 45, 30] let integers = [] for (const integer of mixedNumbers) { @@ -174,16 +174,27 @@ console.log(positivNumbers) //6.3 /****************************************/ -//???? Fehler +// +console.log(positivNumbers) +// Quersumme berechnung von allen positiven zahlen let querSumme = 0; -for (let i = 0; i < mixedNumbers.length; i++){ - if (mixedNumbers[i] <= 9){ - querSumme += mixedNumbers[i] +for (let i = 0; i < positivNumbers.length; i++){ + let stringNumber = "" + if (positivNumbers[i] <= 9){ + querSumme += positivNumbers[i] + console.log(querSumme) + }else{ + // zweistellige oder grössere Zahlen werden in string gewandelt und zerlegt + stringNumber = String(positivNumbers[i]) + console.log(stringNumber) + for (const stringNumberElement of stringNumber) { + console.log(stringNumberElement) + let digit = Number(stringNumberElement) + querSumme += digit + console.log(querSumme) + } } - /*while (mixedNumbers[i]) { - querSumme += mixedNumbers[i] % 10; - mixedNumbers[i] = Math.floor(mixedNumbers[i] / 10); - }*/ + } console.log(querSumme) From 4b959a22c55a08030f3461034b9fbe5dc55d6c44 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 3 Apr 2022 21:22:17 +0200 Subject: [PATCH 09/28] =?UTF-8?q?Basic=20Aufgabe=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/MeineLoesung/basicAufgabe.js | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/exercises/MeineLoesung/basicAufgabe.js diff --git a/src/exercises/MeineLoesung/basicAufgabe.js b/src/exercises/MeineLoesung/basicAufgabe.js new file mode 100644 index 0000000..077dde0 --- /dev/null +++ b/src/exercises/MeineLoesung/basicAufgabe.js @@ -0,0 +1,38 @@ +"use strict" + +// Aufgabe 1.1 + +function returnName (name){ + return "Hallo \<" + name + "\>" +} + +console.log(returnName("Claudia")) + +//Aufgabe 1.2 +function returnNameDefault (name , to = "Welt"){ + if (name === undefined){ + return "Hallo \<" + to + "\>" + }else { + return "Hallo \<" + name+ "\>" + } + +} + +console.log(returnNameDefault()) +console.log(returnNameDefault("Claudia")) + +//Aufgabe 1.3 + +function returnMoreNameDefault (...name){ + if (name.length === 0){ + name.push("Welt") + }else{ + name.push(name) + } + let nameOutput = name.join(", ") + + return "Hallo " + nameOutput +} + +console.log(returnMoreNameDefault("Claudia", "Simon", "Marco")) +console.log(returnMoreNameDefault()) \ No newline at end of file From e3bec726b20b24f496944fa72c3136d54e48f9da Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 8 Apr 2022 09:17:58 +0200 Subject: [PATCH 10/28] =?UTF-8?q?zahlenraten=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/MeineLoesung/basicAufgabe.js | 22 +++++++++++++++- src/exercises/zahlenraten.html | 30 ++++++++++++++++++++++ src/objects.js | 1 - 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/exercises/zahlenraten.html diff --git a/src/exercises/MeineLoesung/basicAufgabe.js b/src/exercises/MeineLoesung/basicAufgabe.js index 077dde0..2cea5e5 100644 --- a/src/exercises/MeineLoesung/basicAufgabe.js +++ b/src/exercises/MeineLoesung/basicAufgabe.js @@ -35,4 +35,24 @@ function returnMoreNameDefault (...name){ } console.log(returnMoreNameDefault("Claudia", "Simon", "Marco")) -console.log(returnMoreNameDefault()) \ No newline at end of file +console.log(returnMoreNameDefault()) + +//"use strict" +function test1 (){ + console.log(this) +} +test1() +let objekt={ + name: "Claudia", + say: function (){ + console.log(this.name) + } + +}; +console.log(objekt.name) +let objektName = objekt.say() +console.log(objektName) +console.log(objekt.__proto__) + + + diff --git a/src/exercises/zahlenraten.html b/src/exercises/zahlenraten.html new file mode 100644 index 0000000..91bd0de --- /dev/null +++ b/src/exercises/zahlenraten.html @@ -0,0 +1,30 @@ + + + + + Zahlen raten + + +

+ Finde die Geheimzahl! +

+ + + + \ No newline at end of file diff --git a/src/objects.js b/src/objects.js index 9a75e37..83ec20d 100644 --- a/src/objects.js +++ b/src/objects.js @@ -63,5 +63,4 @@ const child1 = { weight: "86kg", father: person } - person.children.push(child1) \ No newline at end of file From ec820e2daf97ed60aedb62606bc268193f35d9ce Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 8 Apr 2022 21:35:13 +0200 Subject: [PATCH 11/28] Aufgaben closure.js & fn-Objects-callbacks erledigt --- .../{ => MeineLoesung}/zahlenraten.html | 17 +++++++- src/exercises/functions/closures.js | 7 +++- .../functions/fn-objects-callbacks.js | 39 +++++++++++++++++-- src/functions.js | 17 ++++---- 4 files changed, 66 insertions(+), 14 deletions(-) rename src/exercises/{ => MeineLoesung}/zahlenraten.html (53%) diff --git a/src/exercises/zahlenraten.html b/src/exercises/MeineLoesung/zahlenraten.html similarity index 53% rename from src/exercises/zahlenraten.html rename to src/exercises/MeineLoesung/zahlenraten.html index 91bd0de..d5cff98 100644 --- a/src/exercises/zahlenraten.html +++ b/src/exercises/MeineLoesung/zahlenraten.html @@ -3,6 +3,19 @@ Zahlen raten + + +

@@ -10,11 +23,11 @@

+ + diff --git a/src/modules/logger.module.js b/src/modules/logger.module.mjs similarity index 100% rename from src/modules/logger.module.js rename to src/modules/logger.module.mjs From 22a79f532be284292242ebaa66127c6d0c56e89c Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 10 Apr 2022 14:44:51 +0200 Subject: [PATCH 14/28] =?UTF-8?q?admin.md=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/MeineLoesung/admin.mjs | 34 +++++++++++++++++++++++++++ src/exercises/MeineLoesung/client.mjs | 22 +++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/exercises/MeineLoesung/admin.mjs create mode 100644 src/exercises/MeineLoesung/client.mjs diff --git a/src/exercises/MeineLoesung/admin.mjs b/src/exercises/MeineLoesung/admin.mjs new file mode 100644 index 0000000..61de1c2 --- /dev/null +++ b/src/exercises/MeineLoesung/admin.mjs @@ -0,0 +1,34 @@ +export class Person { + nachname + vorname + + constructor(nachname, vorname) { + this.nachname = nachname + this.vorname = vorname + } +} + +export class Store { + items = [] + + constructor(items) { + this.items = items + } + + add(item) { + this.items.push(item) + } + + remove(item) { + let indexToRemove = this.items.indexOf(item) + this.items.splice(indexToRemove, 1) + } + + findAll(matcher) { + let found = false + if (matcher.length > 0){ + found = true + } + return found + } +} diff --git a/src/exercises/MeineLoesung/client.mjs b/src/exercises/MeineLoesung/client.mjs new file mode 100644 index 0000000..ca1727d --- /dev/null +++ b/src/exercises/MeineLoesung/client.mjs @@ -0,0 +1,22 @@ + +import {Person, Store} from './admin.mjs' + +const person1 = new Person("Martinez", "Claudia") +const person2 = new Person("Martinez", "Marco") +const person3 = new Person("Martinez", "Antonio") +const person4 = new Person("Rumhold", "Eva") +const person5 = new Person("Germann", "Simon") +let persons = [person1, person2, person3] + +const store = new Store(persons) + +store.add(person4) +console.log(persons) + +store.remove(person1) +console.log(persons) +console.log("*********************************") + +let found = (store.findAll(store.items.filter(person => person.nachname === "Germann"))) +console.log(found) + From c6d2a18ae2270f48a6ee34889854d367550946e3 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 10 Apr 2022 16:01:20 +0200 Subject: [PATCH 15/28] =?UTF-8?q?eigene=20=C3=BCbung=20zu=20bind(),apply()?= =?UTF-8?q?,=20call()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eigeneUebungen/function-methods.js | 28 +++++++++++++++++++ .../functions/fn-objects-callbacks.js | 4 +-- src/functions.js | 3 +- 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/exercises/MeineLoesung/eigeneUebungen/function-methods.js diff --git a/src/exercises/MeineLoesung/eigeneUebungen/function-methods.js b/src/exercises/MeineLoesung/eigeneUebungen/function-methods.js new file mode 100644 index 0000000..3e3e608 --- /dev/null +++ b/src/exercises/MeineLoesung/eigeneUebungen/function-methods.js @@ -0,0 +1,28 @@ +// übung für call(), apply() bind() + + +let bob = function (num, str,x){ + console.log('bob', num, str, this, x) + + return true +} + +let bill = { + name:'Bill Murray', + movie: 'Lost in translation', + myMethod: function (fn){ + + + } +} + +//bob(1, 'hi') // bob, 1, hi, this => global Object ( use strict: this => undefined) + +//bill.myMethod(bob) // auch wenn myMethod instanz methode ist => ruft inner funktion auf, bei der this => global +//bill.myMethod(bob.call(bill, 10, 'Welt'))// call(thisArgument, parameter1, parameter2 ) output => bob, 10, Welt, {bill} +//bill.myMethod(bob.apply(bill,[20, 'Planet']))// apply(thisArgument, [parameter1, parameter2] output => bob, 20, Planet, {bill} + + +//bill.myMethod(bob(2, 'blödian')) // nicht gebunden müssen parameter zur laufzeit übergeben werden +let gebundeneFunktion = bob.bind(bill, 30, 'Universum'); // thisContext + Parameter können vor der Ausführung gespeichert werden ( Bind() macht nur KOPIE von Funktion) +gebundeneFunktion("3. parameter x: nachträglich eingefügt => nach bind()")// Muss separat ausgeführt werden diff --git a/src/exercises/functions/fn-objects-callbacks.js b/src/exercises/functions/fn-objects-callbacks.js index e880cfc..26be932 100644 --- a/src/exercises/functions/fn-objects-callbacks.js +++ b/src/exercises/functions/fn-objects-callbacks.js @@ -10,8 +10,8 @@ function aPlusb (p){ console.log(aPlusb(40)) - let abx = add.bind(null,40 ) -console.log(abx(20)) + let abx = add.bind(null,40 ) // erstes argmument von add(40, p) +console.log(abx(20))// aufruf abx(20) => add(40, p=20) // diff --git a/src/functions.js b/src/functions.js index 120fd9c..246e73e 100644 --- a/src/functions.js +++ b/src/functions.js @@ -54,7 +54,7 @@ function meineFn(){ let y = 20 // shadow global y // this.x => sucht die variable x nur im this objekt // x sucht die variable x im lokalen scope und im äusseren globalen scope - console.log(this, this.x, x) + // console.log(this, this.x, x) } meineFn() // undefined undefined 1 new meineFn() // {} undefined 1 @@ -79,6 +79,7 @@ scopeWith1('hi') + // arrow functions let summ = (a, b) => a + b let decoratedSumm = (a, b) => { From 3d719d496ddb4f0edb443ecebb762a01b7dfc58d Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 11 Apr 2022 08:59:02 +0200 Subject: [PATCH 16/28] findAll() erneuert --- src/exercises/MeineLoesung/admin.mjs | 10 ++++++---- src/exercises/MeineLoesung/client.mjs | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/exercises/MeineLoesung/admin.mjs b/src/exercises/MeineLoesung/admin.mjs index 61de1c2..2c0e72a 100644 --- a/src/exercises/MeineLoesung/admin.mjs +++ b/src/exercises/MeineLoesung/admin.mjs @@ -26,9 +26,11 @@ export class Store { findAll(matcher) { let found = false - if (matcher.length > 0){ - found = true - } - return found + for (const item of this.items) { + if (matcher(item)){ + found = true + } + } + return found } } diff --git a/src/exercises/MeineLoesung/client.mjs b/src/exercises/MeineLoesung/client.mjs index ca1727d..ba7932a 100644 --- a/src/exercises/MeineLoesung/client.mjs +++ b/src/exercises/MeineLoesung/client.mjs @@ -17,6 +17,6 @@ store.remove(person1) console.log(persons) console.log("*********************************") -let found = (store.findAll(store.items.filter(person => person.nachname === "Germann"))) +let found = store.findAll((person) => person.nachname === "Germann") console.log(found) From 2fcd8c9021c610842d4c61202bce7674f300edee Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 11 Apr 2022 16:55:58 +0200 Subject: [PATCH 17/28] findAll() erneuert nochmals ;) --- src/exercises/MeineLoesung/admin.mjs | 7 ++++--- src/exercises/MeineLoesung/client.mjs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/exercises/MeineLoesung/admin.mjs b/src/exercises/MeineLoesung/admin.mjs index 2c0e72a..0e5ea65 100644 --- a/src/exercises/MeineLoesung/admin.mjs +++ b/src/exercises/MeineLoesung/admin.mjs @@ -25,12 +25,13 @@ export class Store { } findAll(matcher) { - let found = false + const foundItems = [] for (const item of this.items) { + //matcherfunktion = true, dann push item in foundItems Array if (matcher(item)){ - found = true + foundItems.push(item) } } - return found + return foundItems } } diff --git a/src/exercises/MeineLoesung/client.mjs b/src/exercises/MeineLoesung/client.mjs index ba7932a..dc7bb85 100644 --- a/src/exercises/MeineLoesung/client.mjs +++ b/src/exercises/MeineLoesung/client.mjs @@ -17,6 +17,6 @@ store.remove(person1) console.log(persons) console.log("*********************************") -let found = store.findAll((person) => person.nachname === "Germann") +let found = store.findAll((person) => person.nachname === "Martinez") console.log(found) From 39925cc851d4952b926085036fcdf325173b5fbc Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 1 May 2022 18:19:48 +0200 Subject: [PATCH 18/28] eigene Klassen und Module --- src/destructering.js | 6 ++-- src/exercises/MeineLoesung/classes/Car.mjs | 31 +++++++++++++++++++ .../MeineLoesung/classes/RacingCar.mjs | 21 +++++++++++++ src/exercises/MeineLoesung/classes/app.mjs | 16 ++++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 src/exercises/MeineLoesung/classes/Car.mjs create mode 100644 src/exercises/MeineLoesung/classes/RacingCar.mjs create mode 100644 src/exercises/MeineLoesung/classes/app.mjs diff --git a/src/destructering.js b/src/destructering.js index 59b77da..a142148 100644 --- a/src/destructering.js +++ b/src/destructering.js @@ -1,9 +1,11 @@ 'use strict' // swap -// let a = 1 ,b = 2, arr = [a, b]; + //let a = 1 ,b = 2, arr = [a, b]; + + + //[b, a] = [a, b] -// [b, a] = [a, b] // // default values // let [eins, zwei, drei = 3] = arr diff --git a/src/exercises/MeineLoesung/classes/Car.mjs b/src/exercises/MeineLoesung/classes/Car.mjs new file mode 100644 index 0000000..fe10d41 --- /dev/null +++ b/src/exercises/MeineLoesung/classes/Car.mjs @@ -0,0 +1,31 @@ +"use strict" + +export class Car { + // private #brand + #brand; + color; + fuel; + + constructor(brand, color, fuel) { + this.#brand = brand; + this.color = color; + this.fuel = fuel; + this._brand = brand; + } + + drive(){ + console.log(`Car: ${this.brand} with the color: ${this.color} drives with ${this.fuel} `) + } + + + get brand() { + return this._brand; + } + + set brand(value) { + this._brand = value; + } + + +} + diff --git a/src/exercises/MeineLoesung/classes/RacingCar.mjs b/src/exercises/MeineLoesung/classes/RacingCar.mjs new file mode 100644 index 0000000..6c3cc84 --- /dev/null +++ b/src/exercises/MeineLoesung/classes/RacingCar.mjs @@ -0,0 +1,21 @@ +"use strict" +import {Car} from "./Car.mjs"; +// + +export class RacingCar extends Car { + team; + horsePower; + + constructor(brand, color, fuel, team, horsePower) { + super(brand,color,fuel); + this.team = team; + this.horsePower = horsePower; + } + + drive(){ + console.log(`Racingcar: Team: ${this.team} with the brand: ${this.brand} drives with ${this.horsePower} `) + } + + + +} \ No newline at end of file diff --git a/src/exercises/MeineLoesung/classes/app.mjs b/src/exercises/MeineLoesung/classes/app.mjs new file mode 100644 index 0000000..eac411d --- /dev/null +++ b/src/exercises/MeineLoesung/classes/app.mjs @@ -0,0 +1,16 @@ +import {Car} from "./Car.mjs"; +import {RacingCar} from "./RacingCar.mjs"; + +let car1 = new Car("VW", "White", "Gas"); +let raceCar = new RacingCar("BMW", "Black", "Diesel", "Sauber", 450) + +car1.drive() +raceCar.drive() + +// Use getter +console.log(car1.brand) +console.log(raceCar.brand) +//use setter +car1.brand = "Smart" +console.log(car1.brand) + From 172e6fbf3c2bd59d43b4f2966e43d48d23b59d04 Mon Sep 17 00:00:00 2001 From: Claudia Date: Fri, 6 May 2022 19:37:06 +0200 Subject: [PATCH 19/28] functional uebung --- .../MeineLoesung/functionalUebung.js | 78 +++++++++++++++++++ .../functions/fn-objects-callbacks.js | 2 + 2 files changed, 80 insertions(+) create mode 100644 src/exercises/MeineLoesung/functionalUebung.js diff --git a/src/exercises/MeineLoesung/functionalUebung.js b/src/exercises/MeineLoesung/functionalUebung.js new file mode 100644 index 0000000..ac69226 --- /dev/null +++ b/src/exercises/MeineLoesung/functionalUebung.js @@ -0,0 +1,78 @@ +/*1 +Schreibe eine Funktion die alle Zahlen eines Arrays summiert. +z.B. sum([1,2,3]) => 6 +Schreibe eine funktionale und eine imperative Variante. +Schreibe die Signatur als Deklaration. + +2 +Schreibe eine Funktion die einen Array von Zahlen entgegennimmt und einen Array mit Booleans zurückgibt. +Die Funktion ermittelt für jede Zahl ob diese gerade ist oder nicht. +z.B. even([1,2,3]) => [false, true, false] \ + +Schreibe eine funktionale und imperative Variante. +Schreibe die Signatur als Deklaration. + +3.1 +Implementiere eine Funktion filter(in: Array, predicate: (value: A) => Boolean): Array. +Teste ob diese funktioniert :). + +3.2 +Implementiere eine Funktion map(in: Array, mapper: (value: A) => B): Array. +Teste ob diese funktioniert :). + + */ + +//1 + +let arr = [0,1, 2, 3, 4, 5] +let stringArr = ["Wasser", "Brot", "wein"] +// Imperative Variante +let sum = 0; +for (const number of arr) { + sum += number +} +console.log(sum) + +//Funtionale Variante +console.log(arr.reduce((sum, val ) => { + return sum + val +}),0) +//Signatur: reduce(in: Array, predicate: sum:Number, val:Number : Array) + +//2 +// Imperative Variante +let boolArr =[]; +for (const number of arr) { + console.log(number) + if (number % 2 === 0){ + console.log(number) + boolArr.push(true) + }else { + console.log(number) + boolArr.push(false) + } +} +console.log(boolArr) + +// Funktionale Variante +console.log(arr.map((val => val % 2 === 0))) +// Signatur map(Array predicate: val:Number => Boolean): Array + +//3.1 +let result = arr.filter((val) => true) +console.log(result) +// ein Array ist immer truethy? Alle elemente sind immer true im Array + +for (const number of arr) { + if (number){ + console.log(true) + } +} + +//3.2 +let rs = arr.map((val ) => []) +console.log(rs) + + + + diff --git a/src/exercises/functions/fn-objects-callbacks.js b/src/exercises/functions/fn-objects-callbacks.js index 26be932..11d5c8f 100644 --- a/src/exercises/functions/fn-objects-callbacks.js +++ b/src/exercises/functions/fn-objects-callbacks.js @@ -43,6 +43,8 @@ function add2(a, b, logger){ return a + b } +console.log(add2(20, 40, console.log)) + function bPlusa (p){ return add2(20, p, console.log) From af9816987472a2b9600a28aa1891c65acaf9a5f2 Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 09:28:30 +0200 Subject: [PATCH 20/28] =?UTF-8?q?3.1=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeineLoesung/Object-js-vs-json-uebungen.js | 0 src/exercises/MeineLoesung/functionalUebung.js | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js diff --git a/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js b/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js new file mode 100644 index 0000000..e69de29 diff --git a/src/exercises/MeineLoesung/functionalUebung.js b/src/exercises/MeineLoesung/functionalUebung.js index ac69226..b232d9c 100644 --- a/src/exercises/MeineLoesung/functionalUebung.js +++ b/src/exercises/MeineLoesung/functionalUebung.js @@ -59,8 +59,23 @@ console.log(arr.map((val => val % 2 === 0))) // Signatur map(Array predicate: val:Number => Boolean): Array //3.1 -let result = arr.filter((val) => true) +// eigene Filter Funktion + function filter (arr, number) { + let foundNumbers = [] + for (const ele of arr) { + ele === number ? foundNumbers.push(ele): foundNumbers + } + return foundNumbers + } + +let result = filter(arr, ) console.log(result) + + + + + + // ein Array ist immer truethy? Alle elemente sind immer true im Array for (const number of arr) { From 8423865691f12f5599217036ad628337274b00de Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 09:40:19 +0200 Subject: [PATCH 21/28] =?UTF-8?q?3.2=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeineLoesung/functionalUebung.js | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/exercises/MeineLoesung/functionalUebung.js b/src/exercises/MeineLoesung/functionalUebung.js index b232d9c..f9c9167 100644 --- a/src/exercises/MeineLoesung/functionalUebung.js +++ b/src/exercises/MeineLoesung/functionalUebung.js @@ -73,20 +73,18 @@ console.log(result) - - - -// ein Array ist immer truethy? Alle elemente sind immer true im Array - -for (const number of arr) { - if (number){ - console.log(true) +//3.2 +//eigene Map funktion +function mapper (arr){ + let resultMapper = [] + for (const number of arr) { + number % 2 === 0? resultMapper.push(true): resultMapper.push(false) } + return resultMapper } -//3.2 -let rs = arr.map((val ) => []) -console.log(rs) +console.log(mapper(arr)) + From 8c5ad9b5fcf40831ec63e9bc539772d6be42b91f Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 09:40:46 +0200 Subject: [PATCH 22/28] =?UTF-8?q?3.2=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/exercises/MeineLoesung/functionalUebung.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exercises/MeineLoesung/functionalUebung.js b/src/exercises/MeineLoesung/functionalUebung.js index f9c9167..e0a2d58 100644 --- a/src/exercises/MeineLoesung/functionalUebung.js +++ b/src/exercises/MeineLoesung/functionalUebung.js @@ -68,7 +68,7 @@ console.log(arr.map((val => val % 2 === 0))) return foundNumbers } -let result = filter(arr, ) +let result = filter(arr, 5) console.log(result) From 6d4100c64502b857e601add76b6b6bf84d7f974f Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 10:10:35 +0200 Subject: [PATCH 23/28] =?UTF-8?q?functional-imperativ.md=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functional-imperativ-uebungen.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/exercises/MeineLoesung/functional-imperativ-uebungen.js diff --git a/src/exercises/MeineLoesung/functional-imperativ-uebungen.js b/src/exercises/MeineLoesung/functional-imperativ-uebungen.js new file mode 100644 index 0000000..95a32ef --- /dev/null +++ b/src/exercises/MeineLoesung/functional-imperativ-uebungen.js @@ -0,0 +1,54 @@ +"use strict" + +/* 1. Schreibe eine Funktion sum(in: Array): Number, welche alle Zahlen von in summiert und das Ergebnis retourniert. +Schreibe eine funktionale und eine imperative Variante. + */ + +let arrNumbers = [20, 30, 40, 50] + +//Funktional +console.log(arrNumbers.reduce((sum, numb) => { + sum += numb + return sum +})) + +// Imperativ +function summiere (arr){ + let sum = 0; + + for (const number of arr) { + sum += number + } + return sum +} +let sum = summiere(arrNumbers) +console.log(sum) + + + +/* 2. Schreibe eine Funktion even(in: Array[Number]): Array, welche nur die geraden Zahlen aus in retourniert. +Schreibe eine funktionale und eine imperative Variante. + + */ +//Funktional +let numbers = [3, 10, 45, 90, 32] + +let even = numbers.filter((number) => { + return number % 2 === 0 +}) +console.log(even) + + +//Imperativ +function filterEvenNumbers (arr){ + let evenNumbers = [] + + for (const number of arr) { + number % 2 === 0? evenNumbers.push(number): evenNumbers + } + return evenNumbers +} + +let evenNumbers = filterEvenNumbers(numbers) +console.log(evenNumbers) + From 0e10b426e32f9c04f53a7ea346a931128781342a Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 11:33:07 +0200 Subject: [PATCH 24/28] =?UTF-8?q?schleifen-funtional-uebungen.js=20bis=20?= =?UTF-8?q?=C3=BCbung=205=20gel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schleifen-funtional-uebungen.js | 58 +++++++++++++++++++ .../MeineLoesung/schleifenAufgaben.js | 1 + 2 files changed, 59 insertions(+) create mode 100644 src/exercises/MeineLoesung/schleifen-funtional-uebungen.js diff --git a/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js new file mode 100644 index 0000000..09c69d8 --- /dev/null +++ b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js @@ -0,0 +1,58 @@ +"use strict" + +// Aufgabe 0 functional + +let word = "Pinguin" + + +let wordWithKomma = Array.from(word).join(","); +console.log(wordWithKomma) + +// Aufgabe 1 functional + +let prices = [1.50, 9.90, 10.00] +let total = prices.reduce((sum, price) =>{ + return sum += price +}, 0) +console.log(total) + +// Aufgabe 2 functional + +let numbers = [20, 10, 33, 53, 22] + +let boolNumberEven = numbers.map((number) => { + return number % 2 === 0 +}) +console.log(boolNumberEven) + +// Aufgabe 3 functional + +let sentence = "Ich weiss, dass ich nichts weiss ... !" +let words = sentence.split(" ") +console.log(words) +let capitalSentence = words.map((word) => { + return word[0].toUpperCase().concat(word.slice(1)) +}) +let convertedSentence = capitalSentence.join(" ") +console.log(convertedSentence) + +// Aufgabe 4 functional + + +// Aufgabe 5 functional + +let normalText = "Claudia Martinez" +let char = Array.from(normalText) +let shift = 1 +let charCode = char.map((char, index) => { + return normalText.charCodeAt(index) + shift +}) +console.log(charCode) + +let caesarText = charCode.map((charCode) => { + return String.fromCharCode(charCode).toUpperCase() +}).toString() + + +console.log(caesarText) + diff --git a/src/exercises/MeineLoesung/schleifenAufgaben.js b/src/exercises/MeineLoesung/schleifenAufgaben.js index 3179c8d..454acd5 100644 --- a/src/exercises/MeineLoesung/schleifenAufgaben.js +++ b/src/exercises/MeineLoesung/schleifenAufgaben.js @@ -145,6 +145,7 @@ for (let j = 0; j < normalText.length; j++) { caesarText += " " } let charCode = normalText.charCodeAt(j) + shift + caesarText += String.fromCharCode(charCode).toUpperCase() console.log(caesarText) } From 28058ba47ab00eae8c7b27d2bdaa2a9b82b7871f Mon Sep 17 00:00:00 2001 From: Claudia Date: Mon, 9 May 2022 11:37:52 +0200 Subject: [PATCH 25/28] =?UTF-8?q?schleifen-funtional-uebungen.js=20bis=20?= =?UTF-8?q?=C3=BCbung=205=20refactor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schleifen-funtional-uebungen.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js index 09c69d8..da656d3 100644 --- a/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js +++ b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js @@ -44,15 +44,16 @@ console.log(convertedSentence) let normalText = "Claudia Martinez" let char = Array.from(normalText) let shift = 1 -let charCode = char.map((char, index) => { - return normalText.charCodeAt(index) + shift -}) -console.log(charCode) - -let caesarText = charCode.map((charCode) => { - return String.fromCharCode(charCode).toUpperCase() -}).toString() +let caesarText = char.map((char, index) => { + return normalText.charCodeAt(index) + shift}) + .map((charCode) => { + return String.fromCharCode(charCode).toUpperCase()}) + .toString() console.log(caesarText) + + + + From fe9aad006907f0108f1eb196ac99b830f96950e9 Mon Sep 17 00:00:00 2001 From: Claudia Date: Tue, 10 May 2022 06:56:50 +0200 Subject: [PATCH 26/28] =?UTF-8?q?schleifen-funtional-uebungen.js=20noch=20?= =?UTF-8?q?2=20Aufgaben=20zu=20l=C3=B6sen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schleifen-funtional-uebungen.js | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js index da656d3..8773e19 100644 --- a/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js +++ b/src/exercises/MeineLoesung/schleifen-funtional-uebungen.js @@ -53,6 +53,83 @@ let caesarText = char.map((char, index) => { console.log(caesarText) +// Aufgabe 6.1 functional + +let mixedNumbers = [1, 5, -10, 6.7, 45, 30] +let integers = [] + + integers = mixedNumbers.filter((number) => number % 1 === 0) + +console.log(integers) + +//Aufgabe 6.2 functional + +let positivNumbers = [] + +positivNumbers = mixedNumbers.filter((number) => number > 0) +console.log(positivNumbers) + +// Aufgabe 6.3 Quersumme functional +// zuerst alle einstelligen filtern +// dann alle mehrstelligen auseinander nehmen (string) +// mehrstellige wieder in Number umwandeln +// beide Arrays vereinen +// dann Quersumme berechnet werden +let numbersArr = [1, 34, 5, ] +let stringNumbers = [] +let oneDigit +let quersum = 0; + +stringNumbers = numbersArr.map(String) +oneDigit = stringNumbers.map((string) => { + return string.split("") +}) +console.log(oneDigit) +quersum = oneDigit.reduce((sum, val) => sum += val) +console.log(quersum) + +// Aufgabe 6.4 Durchschnitt functional + +let average = 0; + +average = mixedNumbers.reduce((sum, number) => sum += number) / mixedNumbers.length +console.log(average) + + + +// 7.1 functional + +let zeichenKette = "Ich habe keine Ahnung" +let zeichenArr = Array.from(zeichenKette) +console.log(zeichenArr) + +let neueZeichenKette = zeichenArr.map((zeichen) => { + return zeichen.split(" ") +}) + .map((zeichen, index) => { + return index % 2 === 0? zeichen.toString().toUpperCase():zeichen.toString().toLowerCase() +}) + .join(" ") + +console.log(neueZeichenKette) + + + +//7.2 functional + + + +//7.3 functional +let reversedWord = zeichenKette.split('').reverse().join('') +console.log(reversedWord) + + + +//7.4 functional +let reversedZeichenKette = zeichenKette.split(" ").reverse().join(" ") +console.log(reversedZeichenKette) + + From 211e8d194323e270478c616ce64c446692abfa91 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 15 May 2022 16:49:49 +0200 Subject: [PATCH 27/28] object vs JSON aufgabe 1-2 --- .../Object-js-vs-json-uebungen.js | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js b/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js index e69de29..e3bd4aa 100644 --- a/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js +++ b/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js @@ -0,0 +1,51 @@ +"use strict" + + +//1 + +const users = [ + { + name: "Martin", + score: 100 + }, + { + name: "Sven", + score: 20 + }, + { + name: "Eva", + score: 33 + }, + { + name: "Heike", + score: 40 + } +] + +// sortiert aufsteigend a.score - b.score **** b.score -a.score sortiert absteigend +users.sort((a, b) => { + return a.score - b.score +}).forEach((e) => { + console.log(e) +}) + +//2 +let topScorer = users.sort((a, b) => { + return b.score -a.score +}) + +let topThree1 = [topScorer[0], topScorer[1], topScorer[2]] +console.log(topThree1) + +let topThree2 = topScorer.slice(0, 3) +console.log(topThree2) + +// +let topThree3 = topScorer.filter((value,index) => { + return index <= 2 +}) +console.log(topThree3) + + + const jsonUsers = JSON.stringify(topThree3) +console.log(jsonUsers) \ No newline at end of file From d89a4af1358990785095fed18abaf149bb96fad5 Mon Sep 17 00:00:00 2001 From: Claudia Date: Sun, 15 May 2022 17:03:26 +0200 Subject: [PATCH 28/28] object vs JSON aufgabe 3 --- .../Object-js-vs-json-uebungen.js | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js b/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js index e3bd4aa..00e7fa3 100644 --- a/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js +++ b/src/exercises/MeineLoesung/Object-js-vs-json-uebungen.js @@ -1,6 +1,4 @@ "use strict" - - //1 const users = [ @@ -48,4 +46,26 @@ console.log(topThree3) const jsonUsers = JSON.stringify(topThree3) -console.log(jsonUsers) \ No newline at end of file +console.log(jsonUsers) + +//3 + +let userChange = users.map( user => ({ + content: user.name, + length: user.name.length + +})).sort((a, b) => { + return a.length - b.length +}) + +console.log(userChange) + +//4 + + + + + +//5 + +