feat: added 03_dom
This commit is contained in:
53
02_advanced/uebungen/u10_sum-array-rekursiv/index.html
Normal file
53
02_advanced/uebungen/u10_sum-array-rekursiv/index.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Übung 10: Summe aller Zahlen in einem verschachtelten Array</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="container py-5">
|
||||
<div class="alert alert-primary">
|
||||
<h2>Übung 10: Summe aller Zahlen in einem verschachtelten Array</h2>
|
||||
<p>
|
||||
Schreibe eine rekursive Funktion in JavaScript, die die Summe aller Zahlen in einem verschachtelten Array
|
||||
berechnet. Das Array kann beliebig tief verschachtelt sein und enthält nur Zahlen oder weitere Arrays.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
const sumNestedArray = (arr) => {
|
||||
// Basisfall: Wenn das Array leer ist, ist die Summe 0
|
||||
if (arr.length === 0) {
|
||||
return 0;
|
||||
}
|
||||
// Nimm das erste Element des Arrays
|
||||
const first = arr[0];
|
||||
const rest = arr.slice(1);
|
||||
let sumFirst = 0;
|
||||
|
||||
// Wenn das erste Element ein Array ist, rufe die Funktion rekursiv auf
|
||||
if (Array.isArray(first)) {
|
||||
sumFirst = sumNestedArray(first);
|
||||
} else if (!isNaN(first)) {
|
||||
// Wenn es eine Zahl ist, füge sie zur Summe hinzu
|
||||
sumFirst = Number(first);
|
||||
}
|
||||
// Rekursiver Fall: Summe des ersten Elements + Summe des restlichen Arrays
|
||||
return sumFirst + sumNestedArray(rest);
|
||||
};
|
||||
|
||||
// Test cases
|
||||
console.log(sumNestedArray([1, [2, [3, 4], 5], 6])); // => 21
|
||||
console.log(sumNestedArray([[[[1]]], 2, [3, [4, [5]]]])); // => 15
|
||||
console.log(sumNestedArray([])); // => 0
|
||||
console.log(sumNestedArray([10, [20, [30, [40]]]])); // => 100
|
||||
console.log(sumNestedArray([1, 'a', [2, 'b', [3, 4]], 5])); // => 15 (ignoriert Nicht-Zahlen)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user