From 52816cb770b5196a5a1bd25fad68de3644e91386 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 7 Nov 2022 10:49:13 +0100 Subject: [PATCH] =?UTF-8?q?hinzugef=C3=BCgt=20Daten=20transformation=20Mit?= =?UTF-8?q?hilfe,=20map(),=20filter(),=20reduce()=20Funktionen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chapter11/dataTransformMapFilterReduce.js | 90 +++++++++++++++++++ .../chapter11/forEachWithMaps.js | 14 +++ javascript/Javascript Expert/chapter11/map.js | 13 +++ 3 files changed, 117 insertions(+) create mode 100644 javascript/Javascript Expert/chapter11/dataTransformMapFilterReduce.js create mode 100644 javascript/Javascript Expert/chapter11/forEachWithMaps.js create mode 100644 javascript/Javascript Expert/chapter11/map.js diff --git a/javascript/Javascript Expert/chapter11/dataTransformMapFilterReduce.js b/javascript/Javascript Expert/chapter11/dataTransformMapFilterReduce.js new file mode 100644 index 0000000..2a443a1 --- /dev/null +++ b/javascript/Javascript Expert/chapter11/dataTransformMapFilterReduce.js @@ -0,0 +1,90 @@ +const account1 = { + owner: "David Aster", + movements: [200, 450, -400, 3000, -650, -130, 70, 1300], + interestRate: 1.2, // % + pin: 1111, +}; + +const account2 = { + owner: "Joanne Aster", + movements: [5000, 3400, -150, -790, -3210, -1000, 8500, -30], + interestRate: 1.5, + pin: 2222, +}; + +const account3 = { + owner: "Nika Aster", + movements: [200, -200, 340, -300, -20, 50, 400, -460], + interestRate: 0.7, + pin: 3333, +}; + +const account4 = { + owner: "Eva Aster", + movements: [430, 1000, 700, 50, 90], + interestRate: 1, + pin: 4444, +}; + +const randomNumbers = function (n) { + let arr = []; + for (let i = 0; i < n; i++) { + arr.push(Math.trunc(Math.random() * 1000)); + } + return arr; +}; +console.log("Ursprüngliche Werte"); +var arr = randomNumbers(20); +// werden ursprüngliche Werte geändert, in unserem Fall curr * 2 +console.log(arr); +arr = arr.map(function (curr) { + return curr * 2; +}); +console.log("Geänderte Werte (map)"); +console.log(arr); + +arr = randomNumbers(20); +// Predikat in der return Anweisung, damit werden Werte, die der Bedienung nicht entsprechen, aus dem Feld enfernt +console.log("Ursprüngliche Werte"); +console.log(arr); +arr = arr.filter(function (value) { + return value > 450; +}); +console.log("Geänderte Werte (filter > 450)"); +console.log(arr); + +arr = randomNumbers(20); +console.log("Ursprüngliche Werte"); +console.log(arr); +// Berechnung aller Werte +arr = arr.reduce(function (prev, curr) { + return prev + curr; +}); +// Array wird in einen Wert konvertiert +console.log(arr); + +const user = "David Steven Schmidt Aster"; +// Abkürzung der Namen Mithilfe string Funtionen (Function chaining) +const createUsername = function (user) { + return user + .toLowerCase() + .split(" ") + .map(name => name[0]) + .join(""); +}; +console.log(createUsername(user)); + +const accounts = [account1, account2, account3, account4]; + +const createUsernames = function (accounts) { + accounts.forEach(function (account) { + account.username = account.owner + .toLowerCase() + .split(" ") + .map(name => name[0]) + .join(""); + }); +}; + +createUsernames(accounts); +console.log(accounts); diff --git a/javascript/Javascript Expert/chapter11/forEachWithMaps.js b/javascript/Javascript Expert/chapter11/forEachWithMaps.js new file mode 100644 index 0000000..b5eff43 --- /dev/null +++ b/javascript/Javascript Expert/chapter11/forEachWithMaps.js @@ -0,0 +1,14 @@ +const currencies = new Map([ + ["USD", "United States dollar"], + ["EUR", "Euro"], + ["GBP", "Pound sterling"], +]); + +currencies.forEach(function (value, key, map) { + console.log(`${key}: ${value}`); +}); + +const currency1 = new Set(["USD", "EUR", "GBP"]); +currency1.forEach(function (key, value, set) { + console.log(`${key}: ${value} `); +}); diff --git a/javascript/Javascript Expert/chapter11/map.js b/javascript/Javascript Expert/chapter11/map.js new file mode 100644 index 0000000..4da3e9b --- /dev/null +++ b/javascript/Javascript Expert/chapter11/map.js @@ -0,0 +1,13 @@ +const randomNumbers = n => { + let arr = []; + for (let i = 0; i < n; i++) { + arr.push(Math.trunc(Math.random() * 1000)); + } + return arr; +}; +var arr = randomNumbers(15); +console.log("EUR", arr); + +const eurToUsd = 1.2; +arr = arr.map(that => Math.trunc(that * eurToUsd)); +console.log("Konvertiert ins USD", arr);