Neuling braucht Hilfe bei einer Methode - Error

  • Guten Morgen werte Community,


    bin sowohl neu im Forum als auch in HTML etc. Stehe hier vor einem kleinen Problem und meine sehr geringen HTML Kenntnisse reichen nicht aus, um das Problem zu lösen.


    Erstmal etwas Kontext: Habe von der Arbeit eine Aufgabe bekommen, dass von einer Webseite beim Betätigen einer Schaltfläche eine PDF erzeugt wird mit allen Informationen bezüglich des angezeigten Produktes. Das MacBook wurde eingerichtet und mir wurde für eine Produktinformation ein Beispiel gegeben und ich soll das erweitern für alle anderen Informationen des Produktes. Klingt erstmal nach einfachem Copy & Paste. Aber jetzt entsteht ein Fehler und ich finde alleine nicht raus, warum.


    Die Tabelle:

    Die Deklarationen:

    Code
    public dimensionsDetail: Array<{ title: string }>;
    public dimensionH: Array<{ title: string }>;
    public dimensionW: Array<{ title: string }>;
    public dimensionD: Array<{ title: string }>;
    public weight: Array<{ title: string }>;

    Der Code:

    Code
    const dimensionH: string = this.transformArray(product.dimensionH);
    const dimensionW: string = this.transformArray(product.dimensionW);
    const dimensionD: string = this.transformArray(product.dimensionD);
    const dimensionsDetail: string = this.transformArray(product.dimensionsDetail);
    const weight: string = this.transformArray(product.weight);

    Der Zusatzcode, wo ich nicht weiß was er tut:

    Und abschließend die transformArray-Methode:

    Code
    public transformArray(value: Array<{ id?: number, slug?: string, title: string }>, unit?: string, prefix?:string): string {
      if (!value) {
        return "";
      }
      let result: string = "";
      value.forEach((i: { id: number, slug: string, title: string }, index: number) => {
         result += ((prefix ?  prefix + " " : ""))  + i.title + ((unit ? " " + unit : "")) + (index === value.length - 1 ? "" : ", ");
      });
      return result;
    }

    So viel zum Code. Bin echt übelster Neuling, bitte nicht anmeckern wenn ich beim Post hier was falsch oder unverständlich mache.

    Da alles vorher eingerichtet wurde, kann ich zum System selber gar nichts sagen oder welche HTML Version vorhanden ist. Der Fehler entsteht scheinbar bei der Methode für die Eigenschaft "dimensionsDetail".

    Aus der Konsole bekomme ich die Fehlermeldung:

    Code
    TypeError: value.forEach is not a function
        at ProductsService.transformArray (/Users/bicel/Downloads/middleware/src/services/products.service.ts:759:15)
        at ProductsService.<anonymous> (/Users/bicel/Downloads/middleware/src/services/products.service.ts:601:51)
        at Generator.next (<anonymous>)
        at fulfilled (/Users/bicel/Downloads/middleware/src/services/products.service.ts:13:58)

    Falls es auch wichtig sein sollte, der Wert hinter der Variable dimensionsDetail lautet auf der Webseite zumindest "Ø 65 mm / shoulder Ø 74 mm".


    Ich danke euch im Voraus vielmals für eure Unterstützung und stehe für Fragen etc. bereit.


    Freundliche Grüße

    Burak

  • Problem gelöst.


    Code
    const dimensionsDetail: string = this.transformArray(product.dimensionsDetail);

    geändert zu


    Code
    const dimensionsDetail: string = product.dimensionsDetail.toString();

    da scheinbar der Wert zu diesem Attribut in der DB als einzelner String hinterlegt ist im Gegensatz zu anderen Attributen.


    Trotzdem vielen Dank.

  • Schön, dass du eine Lösung selber gefunden hast und auch Bescheid gegeben hast. Aber totzdem: bitte poste demnächst in das richtig Board, denn das hier ist ein JavaScript-Problem und deshalb gehört es auch in das Board JavaScript ;)

Jetzt mitmachen!

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