Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Funktion mit Array
#1
Anfängerfrage:

<!DOCTYPE html><html lang="de">
<head>
  <meta charset="utf-8">
  <title>Funktion mit Array</title>
  <link rel="stylesheet" href="js4.css">
</head>
  <script>
function toArray(a, b)
  {
  return [a, b];
  }
  </script>
<body>
  <script>
    document.write("Bernd");
    toArray (27, 11);
  </script>
</body>
</html>

Was mach ich hier falsch? Warum erscheint nur "Bernd" auf dem Bildschirm, aber nicht der Inhalt des Arrays?
Zitieren
#2
Moin nbergmann,
es sind ein paar Sachen die mir in deienm Code aufgefallen ist. Ich würde dir empfehlen kein document.write in diesem Fall zu verwenden. Hier könntest du ein neue Element erstellen und diese dann im Body ausgeben lassen.

Code:
<!DOCTYPE html><html lang="de">
<head>
  <meta charset="utf-8">
  <title>Funktion mit Array</title>
  <link rel="stylesheet" href="js4.css">
  <script>
    var myArray = new Array();
    document.addEventListener('DOMContentLoaded', init);
    function init() {
        let bernd = document.createElement('p');
        bernd.textContent = "Bernd";
        document.body.appendChild(bernd);
        let myAusgabe = document.createElement('p');
        myAusgabe.textContent = toArray(27, 11);
        document.body.appendChild(myAusgabe);     
    }
    function toArray(a, b) {
      myArray.push(a); myArray.push(b);
      return myArray;
    }
    </script>
</head>
<body>
</body>
</html>

VG rzscout
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren
#3
Du hast meine Frage nicht beantwwortet.
Als lernender Anfänger bin ich nicht auf der Suche nach einem alternativen Profi-Programm.
Ich will nur wissen: Warum funktioniert der Funktionsaufruf nicht? Warum bleibt der Biildschirm leer?

Die Zeile "document.write("Bernd");" dient mir als Anfänger lediglich dazu zu sehen, dass das Programm wirklich aufgerufen wird.
Natürlich kann die weg.
Zitieren
#4
(14.03.2023, 06:20)nbergmann schrieb: Du hast meine Frage nicht beantwwortet.
Als lernender Anfänger bin ich nicht auf der Suche nach einem alternativen Profi-Programm.
Ich will nur wissen: Warum funktioniert der Funktionsaufruf nicht? Warum bleibt der Biildschirm leer?

Die Zeile "document.write("Bernd");" dient mir als Anfänger lediglich dazu zu sehen, dass das Programm wirklich aufgerufen wird.
Natürlich kann die weg.

Antwort, weil du das Ergebnis einfach nicht ausgibst. Fehlerhaft ist auch der Funktionsaufruf: toArray (27, 11); Dieser enthält Fehler: zwischen den Funktionsaufruf und der Klammern für die Argumente darf kein Leerzeichen stehen.

Sorry das mit dem Code, ich hoffe die Rückmeldung hilft dir weiter.
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren
#5
Ich habe das Leerzeichen gelöscht. Es funktioniert immer noch nicht.
Zitieren
#6
(14.03.2023, 23:07)nbergmann schrieb: Ich habe das Leerzeichen gelöscht. Es funktioniert immer noch nicht.

Wie geschrieben; du musst das Ergebnis auch ausgeben. Ohne Ausgabe kein Ergebnis. Entweder gibst du das Ergebnis über die Konsole via 'console.log()', 'window.alert()' oder du gibst es in einem DOM-Element aus.

Ohne Ausgabe kein Ergebnis.
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren
#7
<!DOCTYPE html><html lang="de">
<head>
  <meta charset="utf-8">
  <title>Funktion mit Array</title>
  <link rel="stylesheet" href="js4.css">
</head>
  <script>
function toArray(a, b)
  {
  return [a, b];
  }
  </script>
<body>
  <script>
    toArray(27, 11);
console.log ([a, b]);
window.alert([a, b]);
  </script>
</body>
</html>

Natürlich ist das falsch, wie ich das gemacht habe.

Tu mir bitte den Gefallen und verbessere das so, dass eine Ausgabe erscheint.
Aber bitte kein neues Programm!
Ich bin lernender Anfänge und muss verstehen, warum das da oben nicht geht.
Das ist mein nächstes Lernziel.
Zitieren
#8
Code:
function toArray(a,b) {
    return [a, b];
}
console.log(toArray(27, 11));
window.alert(toArray(27, 11));

Der Funktionsaufruf muss in der Ausgabe passieren. Indem Fall innerhalb von alert und von console.log.

Mit Funktionsaufruf 'toArray' übergibst du zwei Argumente und diese werden als Array wieder zurück gegeben.

Du würdest das gleiche Ergebis auch bekommen wenn du die Arrays direkt in die Funktionen packen würdest wie in diesem Beispiel:
Code:
console.log([27, 11]);
window.alert([27, 11]);

Kurzgefasst: Dein Funktionsaufruf gibt einen Array zurück mit zwei Einträgen.
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren
#9
Mit dem console.log-Aufruf passiert bei mir nichts Sichtbares.

Mit dem
Code:
window.alert-Aufruf erscheint dieses alert-Fenster mit den richtigen Daten.
Gibt es denn keine Möglichkeit, den Inhalt des Arrays auf dem Bildschrirm auszugeben?

Jetzt wird es lustig.
Ich habe, mit deiner Hilfe, eine Lösung gefunden.
Aber ich weiß, dass diese dir überhaupt nicht gefallen wird.
document.write([27, 11]); liefert mir mit "27,11" den Inhalt des Arrays auf dem Bildschirm.
Das haben deine Vorschläge bisher noch nicht geschafft.

So ist es ein sehr einfaches, kleines, übersichtliches Programm auf der Ausbildungsstufe, in der ich mich gerade befinde.
Ich erwarte schwere Proteste von dir.
Aber bitte kein alternatives Profi-Programm!
Zitieren
#10
(15.03.2023, 19:56)nbergmann schrieb: Mit dem console.log-Aufruf passiert bei mir nichts Sichtbares.

Mit dem
Code:
window.alert-Aufruf erscheint dieses alert-Fenster mit den richtigen Daten.
Gibt es denn keine Möglichkeit, den Inhalt des Arrays auf dem Bildschrirm auszugeben?

Jetzt wird es lustig.
Ich habe, mit deiner Hilfe, eine Lösung gefunden.
Aber ich weiß, dass diese dir überhaupt nicht gefallen wird.
document.write([27, 11]); liefert mir mit "27,11" den Inhalt des Arrays auf dem Bildschirm.
Das haben deine Vorschläge bisher noch nicht geschafft.

So ist es ein sehr einfaches, kleines, übersichtliches Programm auf der Ausbildungsstufe, in der ich mich gerade befinde.
Ich erwarte schwere Proteste von dir.
Aber bitte kein alternatives Profi-Programm!

Moin nbergmann,
wieso soll ich protestieren?!

Es gab von mir die Empfehlung keine 'document.write'-Methode zu verwenden, da es bessere Möglichkeiten gibt. Wenn 'document.write' als Ausbildungsmethode verwendet wird, dann ist das in ordnung nur in der Praxis sollte man auf 'document.write' vollkommen verzichten.

Zu der Methode 'console.log': Diese Methode zeigt in der Konsole des Browsers einen Wert an, nicht im DOM. Wenn du den Wert im DOM angezeigt bekommen möchtest musst du auch den DOM ansprechen. Folgende Möglichkeit gibt es: Selektiere in JavaScript ein vorhandenes Element. Entweder steht da schon wasim body-Bereich oder du verwendest den body direkt.
Nutze danach entweder die Methode .innerHTML oder .textContent. Hier ein kleines Beispiel:
Code:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Array ausgeben</title>
</head>
<body>
    <div id="ausgabe"></div>
    <script>
        // Deine Funktion mit Return
        function toArray(a, b) {
            return [a, b];
        }
        // Selektiere Element mit der ID 'ausgabe' und speicher diese in Variable 'meinElem'
        var meinElem = document.getElementById('ausgabe');
        // Gebe den Text aus als Inhalt indem Element mit der ID 'ausgabe'
        meinElem.textContent = toArray(27,11);
    </script>
</body>
</html>

Das Element wird mithilfe der Methode getElementById in die Variable meinElem gespeichert. Als zweites greifen wir auf das Element zu und verwenden die Methode textContent um innerhalb des Elements mit der ID ausgabe einen Text auszugeben. Indemfall dein Return von der Funktion toArray().

Mithilfe von der Konsole deines Browsers kannsrt du auch Text darin ausgeben lassen. die Methode console.log() wird dafür benötigt.

Hier eine Liste an Befefehlen, Eigenschaften und Methoden die ich verwendet habe:
https://wiki.selfhtml.org/wiki/JavaScrip...lementById
https://wiki.selfhtml.org/wiki/JavaScrip...extContent
https://wiki.selfhtml.org/wiki/JavaScript/Console_API

Diese Seiten helfen dir weiter die einzelnen Methoden, Eigenschaften und Befehle zu verstehen.

https://www.youtube.com/watch?v=9Ug9BnTxBeY

Viel Erfolg

rzscout
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
4 Gast/Gäste