This commit is contained in:
Philippe Torrel
2026-09-23 10:47:07 +02:00
parent b16dd8458d
commit 082a9bd7b3
11 changed files with 209 additions and 18 deletions
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8" />
@@ -24,12 +24,14 @@
<script>
'use strict';
let logTransformedName = (firstName, lastName) => {
const logTransformedName = ({ firstName, lastName }) => {
console.log(`${lastName}, ${firstName.charAt(0)}.`);
};
logTransformedName('Ladislaus', 'Jones');
// TODO: Übergabe von einem Objekt
logTransformedName({
firstName: 'Ladislaus',
lastName: 'Jones',
});
</script>
</body>
</html>
+12 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8" />
@@ -24,6 +24,17 @@
</main>
<script>
'use strict';
const distance = ({ x: xOrigin, y: yOrigin }, { x: xDestination, y: yDestination }) => {
return Math.sqrt((yDestination - yOrigin) ** 2 + (xDestination - xOrigin) ** 2);
};
const getDistance = (origin, target) => {
return Math.sqrt((target.y - origin.y) ** 2 + (target.x - origin.x) ** 2);
};
console.log(distance({ x: 1, y: 1 }, { x: 5, y: 1 })); // => 4
console.log(getDistance({ x: 1, y: 1 }, { x: 5, y: 1 })); // => 4
</script>
</body>
</html>
@@ -34,16 +34,84 @@
</div>
<!-- ▲ /card ▲ -->
</div>
<div class="output alert alert-secondary my-3">
<div class="row"></div>
</div>
</div>
</main>
<script>
'use strict';
const outputEl = document.querySelector('.output');
const person1 = { firstName: 'John', lastName: 'Wick', age: 51, hobbies: ['guns', 'dogs', 'cars'] };
const person2 = { firstName: 'Jane', lastName: 'Doe', age: 23 };
const person3 = { firstName: 'Joe', lastName: 'Doe' };
// your code
const generatePersonData = ({ firstName = '[FIRSTNAME]', lastName = '[LASTNAME]', hobbies = [], age }) => {
let html = '<div class="card mb-3">';
html += '<div class="card-body">';
html += `<h5 class="card-title">${firstName} ${lastName}</h5>`;
if (!!age) {
html += `<p class="card-text">Person is ${age} years old.</p>`;
}
if (hobbies.length > 0) {
html += `<p class="card-text">Person has the following hobbies:</p>`;
html += '</div>';
html += '<ul class="list-group list-group-flush">';
hobbies.forEach((hobby) => {
html += `<li class="list-group-item">${hobby}</li>`;
});
html += '</ul>';
} else {
html += '</div>';
}
html += '</div>';
return html;
};
// const generatePersonData2 = ({ firstName = '[FIRSTNAME]', lastName = '[LASTNAME]', hobbies = [], age }) => {
// let html = `<div class="card mb-3">
// <div class="card-body">
// <h5 class="card-title">${firstName} ${lastName}</h5>
// ${!!age ? `<p class="card-text">Person is ${age} years old.</p>`: ''}
// ${(hobbies.length > 0) ? `<p class="card-text">Person has the following hobbies:</p></div>`
// html += '<ul class="list-group list-group-flush">';
// hobbies.forEach((hobby) => {
// html += `<li class="list-group-item">${hobby}</li>`;
// });
// html += '</ul>';
// } else {
// html += '</div>';
// }
// html += '</div>';
// return html;
// };
const createProfileCard = (personObj) => {
const cardHtml = generatePersonData(personObj);
const cardContainer = document.createElement('div');
cardContainer.classList.add('col-12', 'col-md-4');
cardContainer.insertAdjacentHTML('beforeend', cardHtml);
outputEl.querySelector('.row').appendChild(cardContainer);
};
createProfileCard(person1);
createProfileCard(person2);
createProfileCard(person3);
</script>
</body>
</html>
@@ -72,6 +72,31 @@
</main>
<script>
'use strict';
const SETTINGS = {
countdown: 5, // Countdown in Sekunden
};
const button = document.querySelector('.button-send');
const buttonText = button.textContent;
const buttonCountdown = (countdown) => {
if (countdown === 0) {
button.textContent = buttonText;
button.disabled = false;
} else {
button.textContent = `${countdown}...`;
setTimeout(() => buttonCountdown(--countdown), 1000);
//
}
};
button.addEventListener('click', () => {
button.disabled = true;
buttonCountdown(SETTINGS.countdown);
});
</script>
</body>
</html>
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Übung 5: Summe einer Zahlenreihe rekursiv berechnen</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/lodash@4.18.1/lodash.min.js"></script>
</head>
<body>
<main>
@@ -28,12 +29,33 @@
<script>
'use strict';
const sumRecursive = (n) => {};
const sumRecursive = (n) => {
// Basisfall
if (n === 0) {
return 0;
}
return n + sumRecursive(n - 1); // Rekursion
};
const sumReduce = (n) => {
const numbers = _.range(1, n + 1); // => [1,2,3,4,5]
return numbers.reduce((sum, n) => sum + n, 0);
};
// Test Cases
console.log(_.range(5)); // => [0,1,2,3,4]
console.log(_.range(2, 5)); // => [2,3,4]
console.log(_.range(2, 10, 2)); // => [2,4,6,8]
console.log(sumRecursive(5)); // => 15 (5 + 4 + 3 + 2 + 1)
console.log(sumRecursive(10)); // => 55 (10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1)
console.log(sumRecursive(0)); // => 0
console.log(sumReduce(5)); // => 15
console.log(sumReduce(10)); // => 55
console.log(sumReduce(0)); // => 0
</script>
</body>
</html>
@@ -40,7 +40,13 @@
'use strict';
const combinations = (n, k) => {
// combinations(n - 1, k - 1) + combinations(n - 1, k);
if (k === 0 || k === n) {
return 1;
}
if (k > n) {
return 0;
}
return combinations(n - 1, k - 1) + combinations(n - 1, k);
};
// Test Cases
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8" />
@@ -18,7 +18,26 @@
<script>
'use strict';
const reverseString = (str) => {};
// const recurse = (str, nr) => {
// if (nr < 0) {
// return '';
// }
// return str.charAt(nr) + recurse(str, nr - 1);
// };
// const reverseString = (str) => {
// return recurse(str, str.length - 1);
// };
function reverseString(str) {
// Base case: if the string has only one character, return it
if (str.length <= 1) {
return str;
}
// Recursive case: return the last character of the string and call the function with the rest of the string
return reverseString(str.slice(1)) + str[0];
}
// Test cases
console.log(reverseString('hello')); // => "olleh"
@@ -22,7 +22,26 @@
<script>
'use strict';
const findMax = (arr) => {};
const findMax2 = (arr) => {
if (arr.length === 0) return null;
return Math.max(...arr);
};
const findMax = (arr) => {
if (arr.length === 1) {
return arr[0];
}
if (arr.length === 0) {
return null;
}
if (arr[arr.length - 1] > arr[0]) {
arr.unshift(arr[arr.length - 1]);
}
arr.pop();
return findMax(arr);
};
// Test cases
console.log(findMax([1, 5, 3, 9, 2])); // => 9
@@ -21,10 +21,28 @@
<script>
'use strict';
const findDeepestLevel = (arr, currentLevel = 1) => {};
const findDeepestLevel = (arr, currentLevel = 1) => {
return arr.reduce((max, element) => {
const level = Array.isArray(element) ? findDeepestLevel(element, currentLevel + 1) : currentLevel;
return max > level ? max : level;
}, currentLevel);
};
// Test cases
console.log(findDeepestLevel([1, [2, [3, [4]], 5]])); // => 4
console.log(
findDeepestLevel([
1, //
[
2, //
[
3, //
[4],
],
5,
],
]),
); // => 4
console.log(findDeepestLevel([1, 2, 3, 4, 5])); // => 1
console.log(findDeepestLevel([])); // => 1
console.log(findDeepestLevel([1, [2], [3, [4, [5]]]])); // => 4
@@ -27,9 +27,9 @@
const convertCsvToObj = (csv = '') => {
const rows = csv.split('\n'); // => ['name, category, price', 'Klingon Letter Opener, Office Warfare, 19.99',...]
const headerRow = rows.shift().split(/\s*,\s*/);
const headerFields = rows.shift().split(/\s*,\s*/);
console.log(headerRow); // => ['name', 'category', 'price']
console.log(headerFields); // => ['name', 'category', 'price']
const productRows = rows
.map((row) => row.trim()) // "white spaces" der Strings werden entfernt
@@ -60,7 +60,8 @@
const products = convertCsvToObj(productsCsv);
// output
console.log(products);
console.log(JSON.stringify(products, null, 2)); // JSON String
console.log(products); // Produkte Array
outputEl.innerHTML = `<ol>${products
.map((product) => {
@@ -30,7 +30,7 @@
const calcFactorialWithWhile = () => {};
// Test cases
console.log(calcFactorial(5)); // => 120
console.log(calcFactorial(5)); // => 5! = 5 * 4 * 3 * 2 * 1 = 120
console.log(calcFactorial(3)); // => 6
console.log(calcFactorial(0)); // => 1