# Arrays/Objekte/Chart.js



## N3WM4N (15. Sep 2021)

Guten Tag ich habe folgende Frage. Wir mussten zur Zwischenprüfung ein Script schreiben.
Dabei sollen Koordinaten in ein Diagramm abgebildet werden. Das ganze habe ich mit chart.js gemacht. 
Kurz vorab: Ich habe bestanden und alles hinbekommen, allerdings muss ich in ein paar Tagen in die mündluche Prüfung und
werde vermutlich auf das Script angesprochen. Um erhlich zu sein, weiß ich selber nicht mehr, was ich da gemacht habe.
Ziel war es Koordinaten in einem Array abzuspeichern und später mit chart.js auszugeben. Das Problem war, dass ich sowohl x als auch 
eine y kkoridnate ausgeben muss. Ich habe damals lange recherchiert und habe das dann wie folgt gelöst. Problem: Ich verstehe den Vorgang
nicht 100%ig, da ich mit Objekten noch Probleme habe.

Zuerst habe ich 
var z = [] definiert.

Dann habe ich eine Schleife aufgebaut:

for(i=a; i<=b; i=i+5)

dann die Daten in den Array angehängt mit z.push

z.push({x: i, y:32+i**2})

und dann später mit chart.js z als data angegeben und es wird automatisch 
das Diagramm gezeichnet. Problem ist wie kann ich mir dann den Array vorstellen

So? z = [ (x: , y, (x2: , y2: ), (x3: , y3: )..........].

Mein Verständnisproblem liegt bei z.push. Normalerweise werden ja einzelne Werte in den Array gepackt. Aber
mit dem Code habe ich quasi einzelne Koordinaten in den Array gemacht. Ich hab damals auf einer Website den Vorschlag gesehen.
Vielleicht kann mir ja einer erklären wie genau das abläuft


----------



## httpdigest (15. Sep 2021)

N3WM4N hat gesagt.:


> So? z = [ (x: , y, (x2: , y2: ), (x3: , y3: )..........].


Nicht ganz.

Du packst in das Array JavaScript-Objekte mit jeweils den eigenen Properties "x" und "y". Deine "Werte" bzw. Elemente im Array sind also JavaScript-Objekte und nicht einfach nur z.B. "number".
Also genauer:

```
z = [ {x: , y:}, {x: , y: }, {x: , y: }..........].
```
Und die Werte der x und y Properties der Objekte sind dann eben jeweils `i` und `32+i**2` für jedes i.


----------



## N3WM4N (15. Sep 2021)

Ah das macht erstmal Sinn stimmt. 
In der Vorlesung habe ich das so gelernt.
var z= {Rot: "E0", Gruen: "FF", Blau: "E0", hex: "#" };
oder 
var z.Rot="E0",
var z.Gruen="FF";
var z.Blau="E0";
var z.hex="#";

Wie kann ich mir das dann mit dem z = [ {x: , y:}, {x: , y: }, {x: , y: }..........]. vorstellen?
Also das {x: , y:}, ist immer ein einzelnes Objekt oder? Also wären das in dem Beispiel 3 Objekte mit unterschiedlichen x und y Werten?


----------



## N3WM4N (15. Sep 2021)

Danke erstmal für die Antwort


----------



## httpdigest (15. Sep 2021)

N3WM4N hat gesagt.:


> Also das {x: , y:}, ist immer ein einzelnes Objekt oder? Also wären das in dem Beispiel 3 Objekte mit unterschiedlichen x und y Werten?


Korrekt.


```
var z.Rot="E0",
var z.Gruen="FF";
var z.Blau="E0";
var z.hex="#";
```
Das ist ungültiges JavaScript.

Du kannst stattdessen sagen:

```
var z = {};
z.Rot = "E0",
z.Gruen = "FF";
z.Blau = "E0";
z.hex = "#";
```


----------



## N3WM4N (15. Sep 2021)

var z = {};
z.Rot = "E0",
z.Gruen = "FF";
z.Blau = "E0";
z.hex = "#";

ja genau das meinte ich. Meine Frage ist jetzt, wie das dann hierbei aussieht?
z = [ {x: , y:}, {x: , y: }, {x: , y: }..........].

z ist ja die Variable. 
ohne array würde das ja dann si aussehen
var z= {}
z.x=.....
z.y=......

Aber wie sieht das jetzt in dem Array aus? Wir haben ja mehrere Objekte


----------



## Jw456 (15. Sep 2021)

N3WM4N hat gesagt.:


> z ist ja die Variable.
> ohne array würde das ja dann si aussehen
> var z= {}
> z.x=.....
> ...



und genau solche Objekte hast  du in deinem Array.  

```
var z1= {}
z1.x=.....
z1.y=......

var z2 = {}
z2.x=.....
z2.y=......

var z = []
z.push(z1)
z.push(z2)
```


----------



## N3WM4N (15. Sep 2021)

Ich glaube ich habs verstanden. Vielen lieben Dank euch.
z1 und z2 sind aber jetzt nur beispiele oder?
Also wir haben ein  Array und darin sind Obejkte mit Werten.
Aber wir haben jetzt beispielweise dem ersten Objekt keinen Namen zugewiesen wie z1 oder z2.
Das hast du jetzt nur zum veranschaulichen gemacht oder?


----------



## Jw456 (15. Sep 2021)

Ja genau. 
Das sind Objekte. Auch in meinen Beispiel haben die Objekte im Array keinen Bezeichner mehr. 
Es wird in dem Array eigentlich nur die Instanz der erzeugten Objekte gespeichert.


----------

