[GastForen Programmierung/Entwicklung JavaScript Zweidimensionales Array addressieren?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Zweidimensionales Array addressieren?

NEU!
Beiträge gesamt: 179

16. Nov 2015, 13:08
Beitrag # 1 von 7
Bewertung:
(2693 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich probiere mich oberflächlich an Javascript, und hab noch viel zu lernen:

var Inhalt = [];
var Container = [];

Inhalt[0] = "Tatort";
Inhalt[1] = "20:15";
Container.push(Inhalt);
Inhalt[0] = "Vorabendkram";
Inhalt[1] = "19:05";
Container.push(Inhalt);
Inhalt[0] = "GZSZ";
Inhalt[1] = "19:30";
Container.push(Inhalt);



alert(Container[0][1]); -> "20:15"
alert(Container[2]); -> "GZSZ", "19:30"


Wie aber spreche ich nicht alle Elemente aus der ersten Dimension, sondern aus der zweiten an? So dass zB Folgende Ausgabe kommt:

alert(Container[][1]);
-> "20:15","19:05","19:30"

(Dieser Beitrag wurde von NEU! am 16. Nov 2015, 13:10 geändert)
X

Zweidimensionales Array addressieren?

Martin Fischer
Beiträge gesamt: 12494

16. Nov 2015, 14:01
Beitrag # 2 von 7
Beitrag ID: #544626
Bewertung:
(2670 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Im Prinzip so, wie acuh von Dir oben angewandt:

Code
var Inhalt = [];  
var Container = [];

Inhalt[0] = "Tatort";
Inhalt[1] = "20:15";
Container.push(Inhalt);
alert(Container[0][1]);

Inhalt[0] = "Vorabendkram";
Inhalt[1] = "19:05";
Container.push(Inhalt);
alert(Container[0][1]);

Inhalt[0] = "GZSZ";
Inhalt[1] = "19:30";
Container.push(Inhalt);
alert(Container[0][1]);


Aber wundere Dich nicht darüber, dass am Ende alle Container den Array ['GZSZ', '19:30'] beinhalten. Mit Inhalt[0] = "GZSZ" setzt Du den Inhalt des ersten Elements des Inhalts Arrays auf 'GZSZ' zurück – überall, wo dieser Array verwendet wird. Ebenso mit Inhalt[1] = "19:30".

Viele Grüße
Martin




als Antwort auf: [#544621]

Zweidimensionales Array addressieren?

NEU!
Beiträge gesamt: 179

16. Nov 2015, 14:22
Beitrag # 3 von 7
Beitrag ID: #544627
Bewertung:
(2662 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin, vielen Dank für deine Antwort. Ja, und ich bin auch schön drüber gestolpert, dass mein Array plötzlich überall den gleichen Eintrag hatte. Deshalb resette ich in meinem richtigen Code das Array und fülle es vorm pushen neu:

var Person = []
var Abteilung = [];
for (var i = 0; i < 10; i++)
{
Person = ["", "", 0];
Person[0] = "Nachname"+i;
Person[1] = "Vorname"+i";
Person[3] = "Alter"+i";
Abteilung.push(Person);
}

log Abteilung[0] -> Nachname0, Vorname0, Alter0
log Abteilung[3] -> Nachname3, Vorname3, Alter3
log Abteilung[0][1] -> Vorname0

Wenn ich also nur die erste Stelle des Arrays angebe, bekomm ich ein Array zurück mit dem Inhalt zurück.

Wie spreche ich die zweite Dimension in UNabhänigkeit der Person an, um zB alle "Alter" zu bekommen?

log Abteilung[][] -> Alter0, Alter1, Alter2, …

Wie lautet hier die korrekte Sytax der zweiten Stelle, ohne die erste zu definieren?


als Antwort auf: [#544626]
(Dieser Beitrag wurde von NEU! am 16. Nov 2015, 14:24 geändert)

Zweidimensionales Array addressieren?

Martin Fischer
Beiträge gesamt: 12494

16. Nov 2015, 14:28
Beitrag # 4 von 7
Beitrag ID: #544629
Bewertung:
(2656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du kannst die zweite Ebene über eine Schleife auswerten:

Code
var Person = []  
var Abteilung = [];
for (var i = 0; i < 10; i++)
{
Person = ["", "", 0];
Person[0] = "Nachname"+i;
Person[1] = "Vorname"+i;
Person[3] = "Alter"+i;
Abteilung.push(Person);
}


var helper = new Array;
for (var i = 0; i < Abteilung.length; i++)
{
$.writeln( Abteilung[i][3]);
helper.push( Abteilung[i][3]);
}

$.writeln( '\n\nErgebnis:\n' + helper.join('\n'));


Viele Grüße
Martin




als Antwort auf: [#544627]

Zweidimensionales Array addressieren?

NEU!
Beiträge gesamt: 179

16. Nov 2015, 14:40
Beitrag # 5 von 7
Beitrag ID: #544630
Bewertung:
(2639 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich bin just auf dem Sprung…könnte sowas funktionieren?

log Abteilung[itemByRange(0,-1)][1] -> Vorname0, Vorname1, Vorname2, …


als Antwort auf: [#544627]

Zweidimensionales Array addressieren?

Martin Fischer
Beiträge gesamt: 12494

16. Nov 2015, 14:45
Beitrag # 6 von 7
Beitrag ID: #544632
Bewertung:
(2634 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
"Abteilung" ist als Array initialisiert und ist keine Collection.

Also auch kein itemByRange(). :-(

Viele Grüße
Martin




als Antwort auf: [#544630]

Zweidimensionales Array addressieren?

NEU!
Beiträge gesamt: 179

30. Nov 2015, 11:00
Beitrag # 7 von 7
Beitrag ID: #544998
Bewertung:
(2375 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank, konnte das Problem mit deiner Hilfe und dem Schleifen-Workaround lösen!


als Antwort auf: [#544632]
X

Aktuell

PDF / Print
PDF-XCange_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch