Guten Abend,

Ich habe mich kurzerhand mal für die Implementierung in JavaScript entschieden, da ich PHP kaum noch verwende und auf meinem System nicht installiert habe. Der Algorithmus ist im Grunde aber derselbe. Das von Dir vorgegebene Array habe ich etwas abgeändert, um die Ausgabe nachvollziehbarer zu machen.

JavaScript-Algorithmus:

const scores = [['max', 2], ['moritz', 3], ['tim', 1]];

const sortedScores = scores.sort((a, b) => a[1] - b[1]);

Die Konstante sortedScores enthält die Scores in aufsteigender Reihenfolge, indem das scores-Array mithilfe der Methode sort entsprechend eines von Dir definierten Sortierkriteriums sortiert wird. Die Callback-Funktion dieser Methode erwartet 2 Parameter, die eine Referenz auf die Elemente (in diesem Falle auf die Arrays) des Arrays scores enthalten. In jedem Durchgang werden also immer paarweise 2 Elemente des Arrays miteinander verglichen, bis die Sortierung abgeschlossen ist. In diesem Fall wird die Differenz der einzelnen Scores verwendet, um diese aufsteigend zu ordnen.

Falls Du dich noch nicht ausgiebig mit JavaScript beschäftigt hast und die Syntax mit Arrow-Functions nicht verstehst, hier das Pendant unter Verwendung gewöhnlicher, anonymer Funktionen:

const scores = [['max', 2], ['moritz', 3], ['tim', 1]];

const sortedScores = scores.sort(function(a, b) {
  return a[1] - b[1];
});

Möchtest du in absteigender Reihenfolge sortieren, vertausche die Operanden bei der Berechnung der Differenz:

return b[1] - a[1];

Die zusätzlich erstellte Konstante sortedScores ist übrigens nicht notwendig, da die Methode sort ohnehin die Reihenfolge der Elemente im Array scores verändert. Diese dient hier nur der besseren Übersichtlichkeit.

MfG

...zur Antwort

Hallo,

Syntaktisch ist der Code fehlerfrei.

Die Ursache für das leere Array kann im Grunde zwei Ursachen haben:

  1. Der Block der for-Schleife wird niemals ausgeführt. Ich habe zwar keinerlei Kenntnis über die beiden von Dir verwendeten Variablen width und groesse, gehe aber mal stark davon aus, dass keiner der beiden Operanden negativ ist und das Ergebnis kleiner 0 ist.
  2. Du hast einfach vergessen, die Funktion Xcoordinate aufzurufen.

Eines verstehe ich dann aber doch nicht so ganz:

let value = i ;
XArray.push(value);

Wozu eine weitere Referenz auf die Variable i, wenn du das Array ohnehin um diesen Wert erweitern möchtest? Schreibe lieber folgendes:

XArray.push(i);

LG

...zur Antwort

Guten Abend,

Wenn Du die Audio per audio-Tag in deinen HTML-Code eingebunden hast, kannst du sie wiefolgt automatisch abspielen:

<!-- HTML -->
<audio id="audio" src="..." type="audio/mpeg"></audio>

Die drei Punkte beim src-Attribut dienen natürlich nur als Platzhalter und müssen gegen den Pfad zur Audiodatei ersetzt werden. Bei der in deinem Beispiel gewählten Datei handelt es sich allerdings um eine Videodatei (MP4). Nutzt du eine MP3-Datei, so gib beim type-Attribut audio/mpeg an.

/* JavaScript */
window.onload = () => {
  document.querySelector('#audio').play();
};

Nachdem das Fenster vollständig geladen wurde, wird die Audiodatei vom Browser wiedergegeben. Im Regelfall wird der Browser die automatische Wiedergabe allerdings verhindern, sofern der Nutzer der Seite nicht die entsprechende Berechtigung dazu gegeben hat.

Sei Dir allerdings darüber bewusst, dass eine automatische Wiedergabe eher abschreckend auf Nutzer wirkt.

LG Heinzfred

...zur Antwort

Guten Tag,

Bei den meisten Anbietern ist der entscheidende SSH-Zugang erst bei Hosting-Paketen vorhanden, die für deine eher geringen Anforderungen nicht unbedingt passend sind.

Schon ab 5€ monatlich sind gute V-Server zu haben, die über 8 GB RAM und mindestens 50 GB SSD (auch NVMe) verfügen.

Hier ist der SSH-Zugang natürlich garantiert, weil du den Server konfigurieren musst. Das ist wahrscheinlich aber auch der Nachteil an der ganzen Sache, denn hier sind Kenntnisse über das Betriebssystem notwendig. Dennoch kann somit jede lauffähige Software installiert werden. Der zweite Nachteil ist, dass eine Domain meist nicht inklusive ist, sondern zusätzlich registriert werden muss. Je nach TLD verursacht das jährlich zusätzliche Kosten, bei gängigen TLDs (.de, .com, .net ...) sind das höchstens 15€ im Jahr.

Dennoch habe ich beim Hosting-Anbieter all-inkl ein Hosting-Paket gefunden, das SSH-Zugang ohne Root-Rechte umfasst. Dabei hast du 10 Inklusivdomains, 250 GB Speicherplatz, IMAP und POP3 Support für E-Mail, FTP-Zugang, 50 MySQL-Datenbanken und weiteres. SSL-Zertifikate sind auch enthalten. Kostenpunkt 10€ pro Monat, wobei die ersten 3 Monate kostenfrei sind und keine Mindestvertragslaufzeit besteht. Weitere Informationen zum Hosting-Paket.

Solltest du dich für einen V-Server entscheiden, wären folgende Angebote eine günstige Option, jedoch ist hier wie gesagt eine Konfiguration sowie die zusätzliche Registrierung einer Domain notwendig.

Contabo VPS

(Ab 8 GB RAM, 50 GB NVMe bzw. 200 GB SSD)

Strato VPS

(Ab 8 GB RAM und 300 GB SSD)

Ich selbst habe einen V-Server bei Contabo und bin damit sehr zufrieden. Auch der Kunden-Support ist ausgezeichnet.

Ich hoffe, ich konnte ein wenig weiterhelfen.

LG Heinzfred

...zur Antwort
Angular

Guten Tag,

Zuerst einmal muss ich sagen, dass ich von Vue keine Ahnung habe, das Framework daher nicht beurteilen kann.

Ich habe vor etwa anderthalb Jahren mit React begonnen. Der Funktionsumfang ist meiner Meinung nach recht überschaubar, was sich positiv auf die Lernkurve auswirkt. Konzepte wie der State, der Lifecycle und Hooks müssen verstanden werden. Hat man dieses Konzept aber einmal verinnerlicht und ist damit vertraut, macht die Entwicklung von Websites auf Basis von React Spaß. Ein weiterer wichtiger Bestandteil der React-Library ist für mich JSX sowie das Virtual-DOM. Ich persönlich habe es lieber, wenn ein Framework sämtliche Funktionalitäten (etwa einen HTTP-Client oder einen Router) von Haus aus mitbringt. Bei React muss man auf Libraries von Dritten setzen, etwa react-query für HTTP oder den React Router für das Routing. Aber React ist halt "nur" eine Library, kein umfangreiches Framework.

Vor ungefähr einem halben Jahr habe ich dann mit Angular begonnen. Das Konzept von Komponenten ist insofern kein anderes, als das von React. Jedoch gefällt mir die strikte Trennung von Template und Komponenten-Logik deutlich besser. Anstelle von JSX steht die Template-Syntax von Angular zur Verfügung, in der Interpolation, Direktiven, Bindings und Pipes zur Verfügung stehen. Besonders zu schätzen weiß ich die Strukturdirektiven wie ngIf oder ngFor, mit deren Hilfe Elemente konditional gerendert bzw. Elemente anhand eines Arrays erstellt und dynamisch "gefüllt" werden können. Auch muss zur Aktualisierung des Templates nicht der für die Komponente geltende State aktualisiert werden, wie es in React der Fall ist. Stattdessen reicht es aus, die in der Klasse definierte Eigenschaft zu ändern, was die Entwicklung sehr komfortabel macht. Die ChangeDetection von Angular sorgt dafür, dass die Anpassungen am Template durch eine solche Aktualisierung minimal gehalten wird. Reicht diese automatisch durchgeführte Detection nicht aus oder entspricht nicht den Anforderungen des Entwicklers, kann sie auch durch diesen beeinflusst werden. Angular hat als ausgereiftes Framework bereits alles an Board, was man sich für die Entwicklung moderner Single Page Applications nur wünschen kann: Einen HTTP-Client, einen Router, Module für Formulare und (komplexe) Animationen. Ich genieße einfach diesen Komfort bei der Entwicklung, ohne auf irgendwelche Libraries Dritter angewiesen zu sein.

Die Bundle-Size einer Angular Applikation ist im Regelfall größer als die einer React Applikation. In meinen Augen bringen diese im 2-stelligen KiB-Bereich liegenden Größenunterschiede aber kaum einen nennenswerten Nachteil, beachtet man die heutige Internetgeschwindigkeit.

Ich habe React schon lange nicht mehr angefasst. Dennoch ist es eine recht schlanke und hilfreiche Library, mit der komplexe Webanwendungen entwickelt werden können. Angular jedoch kommt meinen Anforderungen viel näher, weshalb ich in diesem Bereich nur noch mit Angular arbeite.

Letztendlich ist ein Vergleich zwischen Library und Framework nicht unbedingt sinnvoll. Die Modularisierung und das Gesamtkonzept von Angular-Applikationen haben mich allerdings überzeugt.

MfG Heinzfred

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.