Ersetzen und Löschen von Zeichen im String

  • Hallo zusammen,


    Nachdem mir gestern so schnell und cool geholfen wurde, habe ich da mal wieder ne Frage.


    "Replace" kenne ich noch aus meinen VB.Net Zeiten.
    Nun habe ich versucht, dass auch in html umzusetzen.


    Ich habe Bsp. einen String mit folgendem Inhalt = {Peter: 0.998, Uwe: 0.872541254, Beate: 0.72, Maria Dana: 0.854745, ... }

    Diesen möchte ich gerne aufbereiten/formatieren.


    Also mal ne einfache Funktion gebastelt


    Code
    function format_MyName(el) {
         var tmp = el
         var tmp = tmp.replace('{','') 'Entfernt die erste geschweifte Klammer
         var tmp = tmp.replace('}','') 'Entfernt die letzte geschweifte Klammer
         var tmp = tmp.replace(/['"]+/g, '') 'alle Gänsefüssen entfernen
         var tmp = tmp.replace(',','\n') 'alle Kommas durch einen Zeilenumbruch ersetzen
            return tmp
    }

    Die geschweiften Klammern und die Gänsefüsschen entfernt er. Leider ersetzt er nicht alle Kommas durch einen Zeilenumbruch.
    Und dann suche ich nach einer Möglichkeit, dass er mir die Zahlenwerte wie folgt abschneidet. Nach dem Punkt sollen noch max. 3 Zahlen stehen ohne auf das runden zu achten.

    Original: {Peter: 0.998, Uwe: 0.872541254, Beate: 0.72, Maria Dana: 0.854745, ... }
    Ergebnis: Peter: 0.998 \n Uwe: 0.872 \n Beate: 0.72 \n Mario Dana: 0854

    Vielen Dank
    Marja

  • Wenn ich mir den String ansehe, kommt mir der Verdacht, dass es JSON-kodierte Daten sind. Wo kommt der String denn her? Du ersetzt Anführungszeichen, die in deinem Beispiel nicht zu sehen sind. Kann es sein, dass dein String so aussieht:

    Code
    {"Peter": 0.998, "Uwe": 0.872541254, "Beate": 0.72, "Maria Dana": 0.854745}
  • Ich werfe mal zusätzlich die Frage in den Raum, aus welcher Quelle die Daten kommen. Vom Aufbau her ist das weit entfernt von einem sinnvollem Konstrukt.

    Wären die Namen tatsächlich ein Schlüssel wie bei JSON, müsste man über das Objekt iterieren, um an den Key und das Value zu kommen.


    Sinnvoll in Form von JSON wäre es bspw. so

    So iterierst Du über das Array data, weißt aber, dass Du in jedem Objektelement die Schlüssel name und value hast.


    Getestet:

    JavaScript
    var dataset = '{"data":[{"name":"Peter","value":0.998},{"name":"Uwe","value":0.872541254},{"name":"Beate","value":0.72},{"name":"Maria-Diana","value":0.854745}]}';
    
    (JSON.parse(dataset)).data.forEach( i => {
        console.log( i.name + ' has a value of ' + i.value.toString() );
    });


    Code: Ausgabe
    Peter has a value of 0.998
    Uwe has a value of 0.872541254
    Beate has a value of 0.72
    Maria-Diana has a value of 0.854745
  • Wenn ich mir den String ansehe, kommt mir der Verdacht, dass es JSON-kodierte Daten sind. Wo kommt der String denn her? Du ersetzt Anführungszeichen, die in deinem Beispiel nicht zu sehen sind. Kann es sein, dass dein String so aussieht:

    Code
    {"Peter": 0.998, "Uwe": 0.872541254, "Beate": 0.72, "Maria Dana": 0.854745}

    Ja korrekt. Wie gesagt, ich bin in den Anfängen von json und co. Ich wollte diesen String in einer Schleife dann nutzerfreundlich also für den Endanwender zur Verfügung stellen. Die Daten hole ich aus einer MongoDB (kannte ich vorher noch nicht, kannte nur Oracle und Co.) Ich hole sie mit JSON.stringify(JSON.parse(.....)) Und nun versuche ich eben per learning by doing diesen leserlich aufzubereiten. Man freut sich immer dann wenn man durch Tipps was neues Geschäft hat ;)


    Viele Grüße

    Marja

  • Damit kann ich glaube ich was anfangen. Cool und Danke für deinen Tip!!

  • Ja, fertiger Code mag cool sein. Aber da lernt man nix - naja vielleicht ein bisschen.

    Dank Eurer Hinweise/Tipps habe ich meine Lösung gefunden um OBJEKTE zu verstehen und auszulesen zu können ;)


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!