%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}




%Kopfzeile
\ihead{JavaScript}
\chead{}
\ohead{http://kohnlehome.de/html/javascript-arrays.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
JavaScript-Arrays
\end{center}


\section*{Beispieldaten}
\begin{verbatim}
const personen = [
    { vorname: "Carla",  nachname: "Bein", alter: 17 },
    { vorname: "Anna",   nachname: "Copf", alter: 18 },
    { vorname: "Dieter", nachname: "Darm", alter: 20 },
    { vorname: "Berta",  nachname: "Arm",  alter: 16 }
];
\end{verbatim}

\section*{Iteration über Array}
\subsection*{mit Schleife}
\begin{verbatim}
for(let i = 0; i < personen.length; i++){
   personen[i].alter++;
}
\end{verbatim}

\subsection*{mit foreach}
\begin{verbatim}
personen.forEach(person => {
    person.alter++;
});
\end{verbatim}

\section*{Methoden}
\subsection*{find(), findIndex(): Ein Element finden}
\begin{verbatim}
const anna = personen.find(person => person.vorname === "Anna");
//  { vorname: "Anna", nachname: "Copf", alter: 18 }
\end{verbatim}
    
\begin{verbatim}
const indexAnna = personen.findIndex(person => person.vorname === "Anna"); //  1
\end{verbatim}
    
\subsection*{filter(): Mehrere Elemente finden}
\begin{verbatim}    
const erwachsene = personen.filter(person => person.alter >= 18);
//[ { vorname: "Anna",   nachname: "Copf", alter: 18 },
//  { vorname: "Dieter", nachname: "Darm", alter: 20 } ]   
\end{verbatim}

\subsection*{map(): neues Array aus alten Elementen erstellen}
\begin{verbatim}    
const alleVorUndNachnamen = personen.map(
    person => person.vorname + " " + person.nachname
);
//[ "Carla Bein", "Anna Copf", "Dieter Darm", "Berta Arm" ]
\end{verbatim} 

\subsection*{sort(): Sortieren (in-place)}
\begin{verbatim}
personen.sort(
    (person1, person2) => person1.alter - person2.alter
);

personen.sort(
    (person1, person2) => person1.vorname.localeCompare(person2.vorname)
);
\end{verbatim}


\end{document}
