Files
JS/02_advanced/uebungen/u20_geoquiz-2/index.html
T
2026-09-28 09:42:41 +02:00

64 lines
2.3 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Übung 20: Geoquiz — Teil 2</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 20: Geoquiz — Teil 2</h2>
<p>
In der erweiterten Ausbaustufe sollen die Schüler den Staat zu einer Hauptstadt nennen. Deine Aufgabe ist es
erneut, eine Lösungsfunktion zu programmieren. Dieses Mal nimmt <code>getCountryForCapital</code> eine
Hauptstadt (<code>capital</code>) entgegen und liefert den zugehörigen Staat zurück.
</p>
<p>
Die Funktion soll auf die bestehende Konstante <code>countriesWithCapital</code> zugreifen. Es ist nicht
erlaubt, die Struktur der Daten in der Konstante zu ändern.
</p>
</div>
</div>
</main>
<script>
'use strict';
const countriesWithCapital = [
['UK', 'London'],
['France', 'Paris'],
['Germany', 'Berlin'],
['Switzerland', 'Bern'],
['Austria', 'Vienna'],
['Russia', 'Moscow'],
];
const getCountryForCapital = (capital) => {
for (const [country, countryCapital] of countriesWithCapital) {
if (countryCapital === capital) {
return country;
}
}
return undefined;
};
const getCountryForCapital2 = (capital) => {
const foundCountryAr = countriesWithCapital.find(
(arr) => arr[1].trim().toLowerCase() === capital.trim().toLowerCase(),
);
return foundCountryAr ? foundCountryAr[0] : undefined;
};
console.log('London:', getCountryForCapital2('London')); // => London: UK
console.log('London:', getCountryForCapital2('london')); // => London: UK
console.log('London:', getCountryForCapital2('')); // => London: undefined
console.log('Paris:', getCountryForCapital2('Paris')); // => Paris: France
console.log('Vienna:', getCountryForCapital2('Vienna')); // => Vienna: Austria
</script>
</body>
</html>