Javascript Array Name von Element ausgeben?

4 Antworten

Schreib dir eine function mit der zu zunächst alle Buchstaben in deinem string zählst. Danach wandelst du das Ergebnis in ein Array mit Tupelo um, sortierst diesen und gibst das Ergebnis samt ursprünglichen String zurück.

const sortCountLetters = (srcString) => {
  // Ein leeres Object erstellen...
  const letterCounts = {};
  
  // Buchstaben im String zählen...
  for(const letter of srcString) {
    if(letterCounts[letter]) {
      letterCounts[letter]++;
    } else {
      letterCounts[letter]=1;
    }
  }

  // Ergebnis in Array von Tupeln umwandeln...
  const letterArray = Object.entries(letterCounts);

  // Buchstaben im Array sortieren...
  letterArray.sort((a, b) => a[1] - b[1]);

  // Höchsten Wert mit Tupeln ausgeben, Quell-String anhängen...
  return letterArray[[letterArray.length -1], srcString];
}

// Funktion verwenden...
console.log(sortCountLetters("GuteFrage"));

Wenn du jetzt noch zwischen Groß- und Kleinschreibung unterscheiden möchtest, einfach splitten, wieder durch jeden Buchstaben im String gehen, in getrennte Arrays mit Tupeln umwandeln und am Schluss wieder ausgeben lassen. Auch dort kann der ursprüngliche String einfach hinten angehängt werden.

LG medmonk

Woher ich das weiß:Berufserfahrung – UI/UX Designer, Full-Stack Developer

Um den ursprünglichen Namen eines Elements in einem Array auszugeben, könntest du den Index des Elements verwenden, um auf den entsprechenden Namen zuzugreifen.

Zum Beispiel, wenn du das am häufigsten vorkommende Element in deinem Array gefunden hast und du seinen Index kennst, könntest du den ursprünglichen Namen mit folgendem Code ausgeben:

let mostFrequentElementIndex = ...; // Hier setzt du den Index des am häufigsten vorkommenden Elements ein
let mostFrequentElementName = Liste[mostFrequentElementIndex];
console.log(mostFrequentElementName);

Hoffe, das hilft! Wenn du noch weitere Fragen hast, zögere nicht, mich zu kontaktieren.

Hab seit Jahren nicht mehr in Jvascript was gemacht, aber du kannst dir ja ein tupel (falls die das haben) oder Dict oder so nehmen und die dann in die Liste eintragen. Sodass du für den jeweiligen Buchstaben immer schon die Verknüpfung zur Zahl hast und umgekehrt.

Alternativ würde dies auch mit Klassen gehen, die du dir so selber zurecht schreibst, wäre aber sinniger das Vorhandene zu nutzen.

Noch eine Alternative wäre, dass du einfach die Liste mit den Zahlen so befüllst, dass die genau mit der Buchstabenliste überein stimmt. Dann kannst du theoretisch sogar nur die Indexnummer des Arrays mit ner Zahl addieren udn diese dann in ein Char umwandeln. Ist ja Ascii und glaube die Buchstaben lagen direkt hintereinander. Die Lösung ist aber schon mehr als Verrückt und birgt halt viele Risiken. Aber wenn du ein wenig was extravagantes willst ^. Ansonsten halt nur das gleiche Aufstelle der Beiden Listen, aber selbst das ist nicht soo nice.

Woher ich das weiß:Studium / Ausbildung

Mach eine Liste an Objekten

[
 {letter: "a", count: 5},
 {letter: "b", count: 1},
 …
]

und sortiere sie nach count

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf